24 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
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.
 |