使用 ActivityScenarioRule 开始测试 - Android Studio

Starting a test with 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:...)

根据 the documents,如果在没有测试 运行 时使用 getScenario(),则会抛出 NullPointerException。我 运行 使用 AndroidStudio UI 进行这些测试,并且这些测试出现在测试 运行 window 中,所以它抛出异常对我来说没有意义.

是否需要添加 before() 方法来设置 scenarioRule?我缺少某些设置吗?或者这可能是由 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()
    }
}