我创建了一个小应用程序来检查使用浓缩咖啡的测试。在测试类中运行多个测试时,我发现活动正在暂停并为每个测试重新创建。我不认为这是正常行为。
以下是我的测试类代码:
@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中检查了相同的应用程序。它没有表现出任何这样的行为。有人可以解释一下这种行为背后的原因吗?我做错了吗?
答案 0 :(得分:1)
是。 javadoc of ActivityTestRule非常清楚:
此规则提供单个活动的功能测试。在使用Test注释的每个测试之前以及在使用Before注释的方法之前,将启动测试中的活动。它将在测试完成后终止,并使用After注释的方法完成。在测试期间,您将能够直接操作您的活动。