-
- All Implemented Interfaces:
-
org.junit.jupiter.api.extension.AfterEachCallback,org.junit.jupiter.api.extension.BeforeEachCallback,org.junit.jupiter.api.extension.Extension,org.junit.jupiter.api.extension.ParameterResolver
public final class ActivityScenarioExtension<A extends Activity> implements BeforeEachCallback, AfterEachCallback, ParameterResolverJUnit 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... } }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classActivityScenarioExtension.Companion
-
Field Summary
Fields Modifier and Type Field Description private final ActivityScenario<A>scenario
-
Method Summary
Modifier and Type Method Description final ActivityScenario<A>getScenario()UnitbeforeEach(ExtensionContext context)UnitafterEach(ExtensionContext context)BooleansupportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext)ObjectresolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext)-
-
Method Detail
-
getScenario
final ActivityScenario<A> getScenario()
-
beforeEach
Unit beforeEach(ExtensionContext context)
-
supportsParameter
Boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext)
-
resolveParameter
Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext)
-
-
-
-