我是创建了一个小型应用程序,可以使用浓缩咖啡检查测试。在测试类中运行多个测试时,我观察到该活动正在暂停并为每个测试重新创建。我认为这不是正常行为。
这是我用于测试类的代码:
@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
我在机器人中检查了相同的应用程序。它没有显示出任何这样的行为。有人可以向我解释这种行为背后的原因吗?我做错了吗?
是。ActivityTestrule的Javadoc对此非常清楚:
此规则提供了单个活动的功能测试。在用测试注释和之前注释的方法之前,将在测试中进行测试的活动。测试完成后将终止,并在完成后注释的方法。在测试期间,您将可以直接操纵您的活动。