Android
Robolectric
Поиск…
Вступление
Единичное тестирование выполняет часть кода и тестирует его независимо от каких-либо других зависимостей или частей системы (например, базы данных).
Robolectric - это единая тестовая платформа, которая де-фангирует Android SDK, чтобы вы могли тестировать разработку своего приложения для Android. Тесты запускаются внутри JVM на рабочей станции за считанные секунды.
С их помощью вы можете быстро запускать тесты на JVN, все еще используя API Android.
Robolectric test
@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {
@Test
public void clickingButton_shouldChangeResultsViewText() throws Exception {
MyActivity activity = Robolectric.setupActivity(MyActivity.class);
Button button = (Button) activity.findViewById(R.id.button);
TextView results = (TextView) activity.findViewById(R.id.results);
button.performClick();
assertThat(results.getText().toString()).isEqualTo("Robolectric Rocks!");
}
}
конфигурация
Чтобы настроить robolectric add @Config
для проверки класса или метода.
Запуск с пользовательским классом приложений
@RunWith(RobolectricTestRunner.class)
@Config(application = MyApplication.class)
public final class MyTest {
}
Установить целевой SDK
@RunWith(RobolectricTestRunner.class)
@Config(sdk = Build.VERSION_CODES.LOLLIPOP)
public final class MyTest {
}
Выполнить с помощью обычного манифеста
Когда указано, robolectric будет выглядеть относительно текущего каталога. Значение по умолчанию -AndroidManifest.xml
Ресурсы и активы будут загружены относительно манифеста.
@RunWith(RobolectricTestRunner.class)
@Config(manifest = "path/AndroidManifest.xml")
public final class MyTest {
}
Использовать квалификаторы
Возможные квалификаторы можно найти в документах android .@RunWith(RobolectricTestRunner.class)
public final class MyTest {
@Config(qualifiers = "sw600dp")
public void testForTablet() {
}
}
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow