Какова цель @smalltest, @mediumtest и @largetest Annotations в Android?
-
10-10-2019 - |
Вопрос
Я новичок в Android, и я видел пример кода, используя эти аннотации. Например:
@SmallTest
public void testStuff() {
TouchUtils.tapView(this, anEditTextView);
sendKeys("H E L P SPACE M E PERIOD");
assertEquals("help me.", anEditTextView.getText().toString());
}
Чего достигает эта аннотация?
Решение
Этот пост в блоге объясняет это лучше всего. По сути, это следующее:
- Маленький: этот тест не взаимодействует с какой -либо файловой системой или сетью.
- Средний: Доступ к файловым системам в коробке, в котором работают тесты.
- Большой: доступ к внешним файловым системам, сетям и т. Д.
В соответствии с Блог Android Developers, Небольшой тест должен занять <100 мс, средний тест <2S и большой тест <120S.
Видеть эта страница (Поиск «@SmallTest») о том, как указать, какие тесты получают запуска.
Другие советы
Как дополнение к Ответ Дэвидана и в основном Вопрос ОП В комментарии:
В контексте приведенного выше кода, на самом деле это ДЕЛАТЬ Что -нибудь, кроме того, что оставить записку для других разработчиков? Это что -нибудь обеспечивает? Есть ли какие -либо инструменты, которые используют эту аннотацию? Какова цель в разработке Android?
Вы можете запустить группу тестов, аннотированных с конкретной аннотацией.
Из Документация Androidjunitrunner:
Запуск конкретного размера теста, т.е. Самый маленький или же Средний тест или же Argetest:
Adb Shell Am Instrument -w -E -размер [Small | Medium | large] com.android.foo/android.support.test.runner.androidjunitrunner
Вы также можете настроить эти параметры через Gradle:
android {
...
defaultConfig {
...
testInstrumentationRunnerArgument 'size', 'Large'
}
}
Видеть этот пост в блоге Больше подробностей.
Вы также можете аннотировать модульные тесты POJO @Category(MediumTest.class)
или же @Category(LargeTest.class)
, и т. д., определяя свой собственный Категории - См Тестовые категории репо для примера