Package org.robolectric.pluginapi.config
Interface Configurer<T>
- Type Parameters:
T- the configuration object's type
- All Known Implementing Classes:
ConfigConfigurer,ConscryptModeConfigurer,GetInstallerPackageNameModeConfigurer,GraphicsModeConfigurer,LazyApplicationConfigurer,LooperModeConfigurer,SQLiteModeConfigurer,TextLayoutModeConfigurer
public interface Configurer<T>
Provides configuration data for tests.
The test author can apply configuration data at a package, class, or method level, or any combination of those.
The implementation of the configurer determines how config information is collected and merged for each test.
For the test:
class com.foo.MyTest extends com.foo.BaseTest {
@Test void testMethod() {}
}
the configuration is applied in the following order:
- the
defaultConfig() - as specified in /robolectric.properties
- as specified in /com/robolectric.properties
- as specified in /com/foo/robolectric.properties
- as specified in BaseTest
- as specified in MyTest
- as specified in MyTest.testMethod
Configuration objects can be accessed by shadows or tests via ConfigurationRegistry.get(Class).
- See Also:
- Configuring Robolectric for more details.
-
Method Summary
Modifier and Type Method Description TdefaultConfig()Returns the default configuration for tests that do not specify a configuration of this type.Class<T>getConfigClass()Retrieve the class type for this ConfigurerTgetConfigFor(Class<?> testClass)Returns the configuration for the given class.TgetConfigFor(Method method)Returns the configuration for the given method.TgetConfigFor(String packageName)Returns the configuration for a given package.Tmerge(T parentConfig, T childConfig)Merges two configurations.
-
Method Details
-
getConfigClass
Retrieve the class type for this Configurer -
defaultConfig
Returns the default configuration for tests that do not specify a configuration of this type. -
getConfigFor
Returns the configuration for a given package.This method will be called once for package in the hierarchy leading to the test class being configured. For example, for
com.example.FooTest, this method will be called three times with"com.example","@com", and""(representing the top level package).- Parameters:
packageName- the name of the package, or the empty string representing the top level unnamed package- Returns:
- a configuration object, or null if the given properties has no relevant data for this configuration
-
getConfigFor
Returns the configuration for the given class.This method will be called for each class in the test's class inheritance hierarchy.
- Returns:
- a configuration object, or null if the given class has no relevant data for this configuration
-
getConfigFor
Returns the configuration for the given method.- Returns:
- a configuration object, or null if the given method has no relevant data for this configuration
-
merge
Merges two configurations. This method will called whenevergetConfigFor(java.lang.String)returns a non-null configuration object.- Parameters:
parentConfig- a less specific configuration objectchildConfig- a more specific configuration object- Returns:
- the new configuration with merged parent and child data.
-