Espresso - 每种测试方法后活动都会关闭。有没有办法我们不能停止关闭活动和运行其他测试方法

时间:2016-06-09 14:40:25

标签: android unit-testing android-studio android-espresso

spresso - 每个测试方法后活动都会关闭。有没有办法我们不能停止关闭活动和运行其他测试方法

1 个答案:

答案 0 :(得分:2)

如果我理解你的意思,你可以选择其中一种解决方案:

  • 写下一个大测试来测试所有想要的视图,而不是任何 中断:

    @Test
    public void checkIfMainActivityViewsAreProperlyDisplayed() {
    
        //Check if activity name is visible on Toolbar
        onView(withText(R.string.action_main)).check(matches(withParent(withId(R.id.toolbar))));
    
        //Check if ListView is visible at least 50 percent 
        onView(withId(R.id.mListView)).check(matches(isDisplayingAtLeast(50)));
    
        //Check if order Checkbox is checked. Perform check.
        onView(withId(R.id.mCheckBox))
                .check(matches(isNotChecked()))
                .perform(ViewActions.click())
                .check(matches(isChecked()));
    }
    

使用评论让您的代码更清晰

  • 记下测试套件并将其添加到主方法中,如下所示:

     private void checkifActivityNameIsVisibleOnToolbar() {
          onView(withText(R.string.action_main)).check(matches(withParent(withId(R.id.toolbar))));
     }
    
     private void checkifListViewIsVisibleAtLeastFiftyPercent() {
          onView(withId(R.id.mListView)).check(matches(isDisplayingAtLeast(50)));
     }
    
     private void performClickOnOrderCheckBoxToFindIfStateChanged() {
        onView(withId(R.id.mOrder))
            .check(matches(isNotChecked()))
            .perform(ViewActions.click())
            .check(matches(isChecked()));
     }
    
    @Test
    public void checkIfMainActivityViewsAreProperlyDisplayed() throws InterruptedException {
          checkifActivityNameIsVisibleOnToolbar();
          checkifListViewIsVisibleAtLeastFiftyPercent();
          performClickOnOrderCheckBoxToFindIfStateChanged();
    }
    

维护测试代码可能比上一个更容易。

希望它会有所帮助