使用activityscenariorule启动测试-androidstudio

x4shl7ld  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(560)

我正在尝试设置一些基本的仪器测试,我正在物理设备上使用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() 当没有测试运行时。我正在用androidstudio ui运行这些测试,这些测试出现在testrunning窗口中,所以它抛出异常对我来说没有意义。
我需要添加一个 before() 设置场景规则的方法?有什么我不知道的吗?或者这可能是由一种依赖性或其他原因造成的 MyActivity ?

gz5pxeao

gz5pxeao1#

我缺少注解。此版本有效:

@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()
    }
}

相关问题