Какова цель аннотаций @SmallTest, @MediumTest и @LargeTest в Android? - PullRequest
91 голосов
/ 12 января 2011

Я новичок в Android, и я видел пример кода с использованием этих аннотаций. Например:

@SmallTest
public void testStuff() {
    TouchUtils.tapView(this, anEditTextView);
    sendKeys("H E L P SPACE M E PERIOD");
    assertEquals("help me.", anEditTextView.getText().toString());
}

Что делает эта аннотация?

Ответы [ 3 ]

127 голосов
/ 12 января 2011

Это сообщение в блоге объясняет это лучше всего.В основном это следующее:

testing chart

  1. Small: этот тест не взаимодействует ни с одной файловой системой или сетью.
  2. Средний: доступ к файловым системам на компьютере, на котором выполняются тесты.
  3. Большой: доступ к внешним файловым системам, сетям и т. Д.

По блогу разработчиков Android 1019*, маленький тест должен занять <100 мс, средний тест <2 с, а большой тест <120 с. </p>

См.

эту страницу (поиск по "@SmallTest") о том, как указатькакие тесты запускаются.

7 голосов
/ 11 августа 2017

Как дополнение к ответ Давиданна и в основном вопрос ОП в комментарии:

В контексте вышеприведенного кода, действительно ли DO что-нибудь, кроме примечания для других разработчиков? Это навязывает что-нибудь? Есть ли инструменты, которые используют эту аннотацию? Какова цель разработки Android?

Вы можете запустить группу тестов с аннотацией.

Из документации AndroidJUnitRunner :

Выполнение теста определенного размера, то есть с пометкой SmallTest или MediumTest или LargeTest :

adb shell am instrument -w -e размер [маленький | средний | большой] com.android.foo/android.support.test.runner.AndroidJUnitRunner

Вы также можете установить эти параметры через gradle:


    android {
        ...
        defaultConfig {
            ...
            testInstrumentationRunnerArgument 'size', 'Large'
        }
    }

Подробнее см. в этом блоге .

1 голос
/ 28 февраля 2018

Вы также можете аннотировать модульные тесты POJO с помощью @Category(MediumTest.class) или @Category(LargeTest.class) и т. Д., Задав собственные категории - см. test-category repo для примера

...