Java 使用ActivityScenarioRule-AndroidStudio启动测试

Java 使用ActivityScenarioRule-AndroidStudio启动测试,java,android,android-activity,junit4,android-testing,Java,Android,Android Activity,Junit4,Android Testing,我正在尝试设置一些基本的仪器化测试,我正在物理设备上使用AndroidStudio运行这些测试 测试相当简单: @RunWith(AndroidJUnit4.class) public class MyActivityTest { private ActivityScenarioRule<MyActivity> scenarioRule = new ActivityScenarioRule<>(MyActivity.class); @Test

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

测试相当简单:

@RunWith(AndroidJUnit4.class)
public class MyActivityTest {
    private ActivityScenarioRule<MyActivity> scenarioRule = new ActivityScenarioRule<>(MyActivity.class);
    
    @Test
    public void onFoo() {
        ActivityScenario scenario = scenarioRule.getScenario();
    }
}
根据,如果在没有测试运行时使用
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()
    }
}
@RunWith(AndroidJUnit4.class)
@小测验
公共类MyActivityTest{
@统治
public ActivityScenarioRule activityRule=新的ActivityScenarioRule(MyActivity.class);
@试验
公共图书馆{
ActivityScenarioRule方案=activityRule.getScenario()
}
}
@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()
    }
}