我成功地在包含robotium-solo-3.2.1.jar的我的XXTest.java中編寫了兩個測試用例,幸運的是在JUnit視圖中顯示第一個完成,設備正好工作(在仿真器上)。兩個robotium測試用例,但第二個沒有響應(在JUnit視圖中)
然後進入第二個,但它只是永遠掛在那裏!對不起,我無法使用我的帳戶添加屏幕截圖。
這裏是我的代碼:
public class XXTest extends ActivityInstrumentationTestCase2<SignInActivity> {
private Solo solo;
private Activity mActivity;
private static final String account = "someone";
private static final String pwd = "123456";
@SuppressWarnings("deprecation")
public XXTest() {
super("com.acompany.android", SignInActivity.class);
}
protected void setUp() throws Exception {
super.setUp();
this.mActivity = getActivity();
solo = new Solo(getInstrumentation(), mActivity);
}
@Smoke
public void testLogIn() throws Exception {
EditText accountInput = (EditText) solo.getView(R.id.edit_account);
EditText pwdInput = (EditText) solo.getView(R.id.edit_password);
solo.clearEditText(accountInput);
solo.clearEditText(pwdInput);
solo.enterText(accountInput, account);
solo.enterText(pwdInput, pwd);
solo.clickOnButton(mActivity.getResources()
.getString(R.string.text_sign_in));
solo.waitForActivity("MainActivity");
solo.assertCurrentActivity("Expect MainActivity shown...", "MainActivity");
boolean expected = true;
boolean actual = solo.searchButton(mActivity.getResources().getString(
R.string.welcome_dialog_start));
assertEquals("find friend dialog not shown", expected, actual);
}
@Smoke
public void testOpenPref() throws Exception {
solo.goBack();
solo.clickOnMenuItem(mActivity.getResources().getString(
R.string.text_preferences));
solo.assertCurrentActivity("Expected PrefActivity..", "PrefActivity");
solo.goBackToActivity("MainActivity");
solo.assertCurrentActivity("Expected MainActivity..", "MainActivity");
}
protected void tearDown() throws Exception {
super.tearDown();
}
}
我從Robotium教程搜索NotePadTest.java的樣本,這3個測試案例中它只是做工精細!
請告訴我哪裏出了問題?我在某處錯過了什麼嗎?爲什麼第二個測試用例沒有運行?
btw。測試項目中是否可以有多個類擴展ActivityInstrumentationTestCase2?好奇!
謝謝! @雷納斯,我明白了! 因此,一個測試類中的所有測試用例只能針對同一個android活動,對吧?如果我想要兩個測試用例針對兩個不同的活動呢? – Robert
只要屬於同一應用程序,您就可以根據需要定位多個活動。 – Renas
在tearDown()方法中添加solo.finishOpenedActivities()之後,應用程序在第一個測試方法之後被髮送到後臺,並重新啓動並立即再次發送到後臺,然後沒有任何反應。這是它應該工作的正常方式嗎? – Balaram