我正在进入 Android UI 测试,我学会了两种启动活动的方法:ActivityScenario
在每个测试中,ActivityScenarioRule
一次,用@Rule
.
一开始我用过ActivityScenario
,成功了。每个测试大约需要 2-4秒才能完成:
@RunWith(AndroidJUnit4ClassRunner.class)
public class MyActivityTest {
@Test
public void test1() {
ActivityScenario<MyActivity> scenario = ActivityScenario.launch(MyActivity.class);
//do testing...
}
@Test
public void test2() {
ActivityScenario<MyActivity> scenario = ActivityScenario.launch(MyActivity.class);
//do testing...
}
//more tests...
}
然后我决定切换到ActivityScenarioRule
,因为我编写了相当多的测试,并且根据规则,我不需要ActivityScenario
为每个测试创建一个:
@RunWith(AndroidJUnit4ClassRunner.class)
public class MyActivityTest {
@Rule //launch this activity before each test
public ActivityScenarioRule<MyActivity> rule = new ActivityScenarioRule<>(MyActivity.class);
@Test
public void test1() {
//do testing...
}
@Test
public void test2() {
//do testing...
}
//more tests...
}
如果我使用这条规则运行测试,每个测试大约需要40-50 秒,并且大部分时间都花在了这个屏幕上:
测试在模拟器上运行。我不知道这个屏幕是什么,为什么在使用时会占用这么多时间ActivityScenarioRule
。在每次测试中使用ActivityScenario
时,此屏幕不会显示并且测试完成速度很快。请帮忙,我错过了什么?