XXTest.java に robotium-solo-3.2.1.jar を含めて 2 つのテスト ケースを作成できました。幸いなことに、JUnit ビューでは最初のテスト ケースが完了したことが示され、デバイスは (エミュレータ上でも) 正確に動作しました。
それから2つ目に進みますが、永遠にぶら下がっています! 申し訳ありませんが、私のアカウントにスクリーン ショットを添付できません。
ここに私のコードがあります:
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 つのテスト ケースは問題なく動作します。
どこが悪いのか教えてください?? 私はどこかで何かを逃していますか?2 番目のテスト ケースが実行されないのはなぜですか?
ところで。テスト プロジェクトに ActivityInstrumentationTestCase2 を拡張するクラスが複数存在することはありますか? 奇妙な!