Robolectric config
В Robolectric, @Config
— это аннотация, которая позволяет управлять параметрами среды тестирования. Она предоставляет множество настроек, которые можно использовать для настройки выполнения тестов, таких как указание версии Android, имитация определённых классов, настройка ресурсов и многое другое.
@Config
sdk
@Config(sdk = {21, 28})
public class MyTest {
// Test code here
}
minSdk
и maxSdk
@Config(minSdk = 16, maxSdk = 30)
public class MyTest {
// Test code here
}
manifest
AndroidManifest.xml
, который будет использоваться во время тестирования. По умолчанию Robolectric ищет AndroidManifest.xml
в каталоге модуля.@Config(manifest = "src/test/AndroidManifest.xml")
public class MyTest {
// Test code here
}
resourceDir
shadows
application
Application
, который будет использоваться во время выполнения тестов. Это позволяет заменять класс Application
на время тестирования.Application
.packageName
instrumentedPackages
@Config
Аннотация @Config
особенно полезна в следующих случаях:
Тестирование на разных версиях SDK: Когда ваше приложение должно поддерживать несколько версий Android, вы можете протестировать его поведение на каждой из этих версий.
Изменение поведения Android API: Использование шедоуз позволяет имитировать или переопределять поведение стандартных классов Android, что особенно полезно для тестирования кода, который зависит от API, недоступных в обычных JVM-тестах.
Тестирование с разными конфигурациями ресурсов: Если ваше приложение должно корректно работать с разными конфигурациями, такими как язык, плотность экрана или ориентация, @Config
позволяет вам тестировать эти сценарии.
Поддержка кастомных реализаций Application или Manifest: Иногда необходимо протестировать приложение с различными конфигурациями манифеста или даже с заменой класса Application
.