Sorin Basca aceee6876a Use Mockito 4.6.1 API
Bug: 236636175
Test: m RunBackupEncryptionRoboTests
Test: m RunBackupEncryptionIntegRoboTests
Test: m RunSettingsRoboTests
Test: m RunSettingsLibRoboTests
Change-Id: I0e301b641312f8cc4a235df5ec62acf1446cbb64
(cherry picked from commit 58ddd21982a915f01d2e3ca0258e50bf17354516)
Merged-In: I0e301b641312f8cc4a235df5ec62acf1446cbb64
(cherry picked from commit 86203882dd66e79ca6f7d411257b2f5e32d3b722)
Merged-In: I0e301b641312f8cc4a235df5ec62acf1446cbb64
2022-07-19 09:07:22 +00:00
..
2022-07-19 09:07:22 +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.