ActivityScenarioExtension

class ActivityScenarioExtension<A : Activity> : BeforeEachCallback, AfterEachCallback, ParameterResolver

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...
}
}

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Returns the current ActivityScenario of the activity class.

Functions

Link copied to clipboard
open override fun afterEach(context: ExtensionContext)
Link copied to clipboard
open override fun beforeEach(context: ExtensionContext)
@API(status = API.Status.EXPERIMENTAL, since = "5.12")
open fun getTestInstantiationExtensionContextScope(rootContext: ExtensionContext): TestInstantiationAwareExtension.ExtensionContextScope
Link copied to clipboard
open override fun resolveParameter(parameterContext: ParameterContext, extensionContext: ExtensionContext): Any
Link copied to clipboard
open override fun supportsParameter(parameterContext: ParameterContext, extensionContext: ExtensionContext): Boolean