android - 两个 robotium 测试用例,但第二个卡在那里没有响应(在 JUnit View 中)

标签 android junit robotium

我设法在我的 XXTest.java 中编写了两个测试用例,其中包含 robotium-solo-3.2.1.jar,幸运的是,在 JUnit View 中它显示第一个已经完成,该设备可以正常工作(也在模拟器上)。

然后它继续到第二个,但它永远卡在那里!抱歉,我无法附上我的帐户的屏幕截图。

这是我的代码:

    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 个测试用例工作正常!

请告诉我哪里出了问题??我在某处遗漏了什么吗?为什么第二个测试用例没有运行?

顺便说一句。一个测试项目中是否可以有多个class extends ActivityInstrumentationTestCase2?好奇!

最佳答案

您需要在 tearDown() 中使用 solo.finishOpenedActivities()。

关于android - 两个 robotium 测试用例,但第二个卡在那里没有响应(在 JUnit View 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10442912/

相关文章:

android - 与语言无关的 Robotium 测试

java - 在android中,如何备份java类的内容并恢复它

Android 7.0 (Nougat) 打盹模式停止 Web 服务

java - 为什么在我什至不使用参数化测试时出现 ParameterResolutionException?

spring - 将 Mockito 模拟注入(inject) Spring bean

c# - 什么相当于 C# 中的 JUnit?

android - 如何使用 Robotium/Android SDK 找出堆栈顶部的 Activity?

android - Android软键盘/输入法UI可以自动化测试吗?

android - 为什么我的图像在使用 glide 库加载后会缩小

java - 如何在 Java 中将 L 附加到 long