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