В чем цель аннотаций @SmallTest, @MediumTest и @LargeTest в Android?
Я новичок в Android, и я видел пример кода, используя эти аннотации. Например:
@SmallTest
public void testStuff() {
TouchUtils.tapView(this, anEditTextView);
sendKeys("H E L P SPACE M E PERIOD");
assertEquals("help me.", anEditTextView.getText().toString());
}
Что делает эта аннотация?
Ответы
Ответ 1
Это сообщение в блоге объясняет это лучше всего. В основном, это следующее:
![таблица тестирования]()
- Маленький: этот тест не взаимодействует с какой-либо файловой системой или сетью.
- Medium: доступ к файловым системам в поле, в котором выполняются тесты.
- Large: доступ к внешним файловым системам, сетям и т.д.
В блог разработчиков Android, небольшой тест должен взять < 100 мс, средний тест < 2s, и большой тест < 120s.
Смотрите эту страницу (найдите "@SmallTest" ) о том, как указать, какие тесты запускаются.
Ответ 2
В качестве дополнения к Davidann answer и главным образом вопрос OP в комментарии:
В контексте вышеприведенного кода действительно ли это DO, кроме как оставить заметку для других разработчиков? Обеспечивает ли это что-либо? Существуют ли какие-либо инструменты, которые используют эту аннотацию? Что это за цель в разработке Android?
Вы можете запустить группу тестов, аннотированных определенной аннотацией.
От Документация AndroidJUnitRunner:
Запуск определенного размера теста, то есть аннотирование с помощью SmallTest или Среднего теста или LargeTest:
adb shell am instrument -w -e размер [small | medium | large] com.android.foo/android.support.test.runner.AndroidJUnitRunner
Вы также можете настроить эти параметры с помощью gradle:
android {
...
defaultConfig {
...
testInstrumentationRunnerArgument 'size', 'Large'
}
}
Подробнее см. этот пост в блоге.