Activity Scenario Extension
JUnit 5 Extension for the ActivityScenario API, provided by the AndroidX test core library.
This extension is used in lieu of a JUnit 4 Rule to automatically launch/stop an ActivityScenario for each test case.
To use this extension in your test class, add it as a non-private instance field to your test class, using one of the factory methods named launch. Then, annotate this field with JUnit Jupiter's RegisterExtension annotation. In Kotlin, also add JvmField or else the generated property won't be visible to the TestEngine!
// Java
class MyActivityTests {
@RegisterExtension
final ActivityScenarioExtension<MyActivity> scenarioExtension = ActivityScenarioExtension.launch(MyActivity.class);
}
// Kotlin
class MyActivityTests {
@JvmField
@RegisterExtension
val scenarioExtension = ActivityScenarioExtension.launch<MyActivity>()
}In your test method, you can obtain a reference to the scenario in two ways:
A) You obtain it from the extension directly through its accessor method:
// Java
class MyActivityTests {
@RegisterExtension
final ActivityScenarioExtension<MyActivity> scenarioExtension = ActivityScenarioExtension.launch(MyActivity.class);
@Test
void myTest() {
ActivityScenario<MyActivity> scenario = scenarioExtension.getScenario();
// Use the scenario...
}
}
// Kotlin
class MyActivityTests {
@JvmField
@RegisterExtension
val scenarioExtension = ActivityScenarioExtension.launch<MyActivity>()
@Test
fun myTest() {
val scenario = scenarioExtension.scenario
// Use the scenario...
}
}B) You add a parameter of type ActivityScenario, with the activity class as its generic type:
// Java
class MyActivityTests {
@RegisterExtension
final ActivityScenarioExtension<MyActivity> scenarioExtension = ActivityScenarioExtension.launch(MyActivity.class);
@Test
void myTest(ActivityScenario<MyActivity> scenario) {
// Use the scenario...
}
}
// Kotlin
class MyActivityTests {
@JvmField
@RegisterExtension
val scenarioExtension = ActivityScenarioExtension.launch<MyActivity>()
@Test
fun myTest(scenario: ActivityScenario<MyActivity>) {
// Use the scenario...
}
}Properties
Returns the current ActivityScenario of the activity class.