Instrumentation setup

Application modules

If you get any error due to "Activity not found" in your application module, add the following to the androidTest/manifest

<activity android:name="sergio.sastre.uitesting.utils.activityscenario.ActivityScenarioConfigurator$PortraitSnapshotConfiguredActivity"/>
<activity android:name="sergio.sastre.uitesting.utils.activityscenario.ActivityScenarioConfigurator$LandscapeSnapshotConfiguredActivity"
    android:screenOrientation="landscape"/>

System Locale

To change the System Locale via SystemLocaleTestRule (i.e. necessary for snapshot testing Activities only), you also need to add the following permission to your androidTest/manifest. For multi-module apps, do this in the app module.

<!-- Required to change the System Locale via SystemLocaleTestRule (e.g. for snapshot testing Activities) -->
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"
    tools:ignore="ProtectedPermissions" />

And add the TestRule to your tests

@get:Rule
val systemLocale = SystemLocaleTestRule("en")

In-App Locale

AndroidUiTestingUtils also supports per-app language preferences in instrumentation tests. In order to change the In-App Locale, you need to use the InAppLocaleTestRule. For that it is necessary to add the following dependency in your build.gradle

androidTestImplementation 'androidx.appcompat:appcompat:1.6.0-alpha04' // or higher version!

Use this rule to test Activities with in-app Locales that differ from the System Locale.

@get:Rule
val inAppLocale = InAppLocaleTestRule("en")

Last updated