Files
frameworks_base/services/robotests
Al Sutton cd2ed27f7f Add first order deps to test build file
We should have our first order dependencies specified in our build
file to help aidegen ensure that any generated IDE files aren't
missing crucial dependencies.

In this case adding mockito and truth allows IntelliJ to show the
verify(...) and assertThat(....) calls are valid and not leave them
as red-underlined undefinied calls.

Test: aidegen frameworks/base/services/robotests/backup/
Change-Id: Iea347c623dc0bbe5740d6129e710b4757c87d781
2020-01-17 12:31:02 +00:00
..
…

This folder is for Robolectric tests inside the platform.

To add a test class annotate it as follows:

@RunWith(FrameworkRobolectricTestRunner.class)
@Config(manifest = Config.NONE, sdk = 26)
@SystemLoaderClasses({ClassUnderTest.class, DependencyClasses.class})
@SystemLoaderPackages({"com.android.server.yourmodule"})

Robolectric loads some classes that it decides from versioned jars of the framework. Since we are
part of the framework some of our classes get loaded from these jars. This is NOT what we want, we
want to test against what we wrote in the tree. Because of this we use a custom test runner,
FrameworkRobolectricTestRunner, that bypasses these jars and loads certain classes from the system
class loader.

To specify which classes to load use either @SystemLoaderClasses or @SystemLoaderPackages. In
practice:
* You MUST put the class under test here.
* If you encounter any exceptions that might be caused by a different version of the class being
loaded, such as NoSuchMethodException, put the class involved in the exception in this annotation
and try again.

Check Android.mk file for more info.