Android - Espresso:为每个测试重新创建活动

时间:2017-02-21 08:55:50

标签: android android-espresso

我创建了一个小应用程序来检查使用浓缩咖啡的测试。在测试类中运行多个测试时,我发现活动正在暂停并为每个测试重新创建。我不认为这是正常行为。

以下是我的测试类代码:

@RunWith(AndroidJUnit4.class)
@LargeTest
@FixMethodOrder(MethodSorters.NAME_ASCENDING)

public class MyTestClass {

@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class);

@Before
public void beforeTest(){
    // Called before each test
}

@After
public void afterTest(){
    // Called after each test
}

@Test
public void a_clickButton() {
    Log.d("robotarch", ">>>>>>> a_clickButton");
}

@Test
public void b_enterAndClick(){
    Log.d("robotarch", ">>>>>>> b_enterAndClick");
}


}

除此之外,我还在所有活动生命周期方法中添加了日志。

以下是我得到的输出顺序:

oncreate
onstart
onresume
onPostresume
>>>>>>> b_enterAndClick
onpause
onresume
onPostresume
onpause
oncreate
onstart
onresume
onPostresume
>>>>>>> a_clickButton
onStop
ondestroy
onpause
onStop
ondestroy

我在robotium中检查了相同的应用程序。它没有表现出任何这样的行为。有人可以解释一下这种行为背后的原因吗?我做错了吗?

1 个答案:

答案 0 :(得分:1)

是。 javadoc of ActivityTestRule非常清楚:

  

此规则提供单个活动的功能测试。在使用Test注释的每个测试之前以及在使用Before注释的方法之前,将启动测试中的活动。它将在测试完成后终止,并使用After注释的方法完成。在测试期间,您将能够直接操作您的活动。