使用ActivityScenarioRule-AndroidStudio开始测试



我正在尝试设置一些基本的仪器测试,这些测试是我在物理设备上使用AndroidStudio运行的。

测试相当简单:

@RunWith(AndroidJUnit4.class)
public class MyActivityTest {
private ActivityScenarioRule<MyActivity> scenarioRule = new ActivityScenarioRule<>(MyActivity.class);

@Test
public void onFoo() {
ActivityScenario scenario = scenarioRule.getScenario();
}
}

当它运行时,会发生这种情况:

java.lang.NullPointerException: throw with null exception
at androidx.test.internal.util.Checks.checkNotNull(Checks.java:34)
at androidx.test.ext.junit.rules.ActivityScenarioRule.getScenario(ActivityScenarioRule.java:118)
at com.me.sample.activities.MyActivityTest.onFoo(MyActivityTest.java:...)

根据文档,如果在没有运行测试的情况下使用getScenario(),则会引发NullPointerException。我正在使用AndroidStudio UI运行这些测试,测试显示在测试运行窗口中,所以它抛出这个异常对我来说没有意义。

我需要添加before()方法来设置场景规则吗?有没有我错过的布景?或者这可能是由MyActivity中的依赖项或其他原因引起的?

我缺少注释。这是一个有效的版本:

@RunWith(AndroidJUnit4.class)
@SmallTest
public class MyActivityTest {

@Rule
public ActivityScenarioRule<MyActivity> activityRule = new ActivityScenarioRule<>(MyActivity.class);
@Test
public void foo() {
ActivityScenarioRule<MyActivity> scenario = activityRule.getScenario()
}
}

最新更新