Тестирование Android JUnit

Опубликовано: 20.10.2017

Актуально для Android studio.

Для написания Unit тестов использую Robolectric и JUnit4. Robolectric нужен для получения доступа к специфическим для Andoird компонентам, например Context.

Для использования JUnit4 и Robolectric надо дописать в build.gradle:

testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.9.5" testCompile "org.robolectric:robolectric:3.0"

После чего создать папку test рядом с папкой main, должна получится примерно следующая структура:

app\src\main\ app\src\test\

В папке test лучше создать такую же структуру пакетов, как и в папке main. Хочу заметить что если в обозревателе проектов выбран тип Android, то папка test не будет видна. Необходимо переключить на тип Project. Так же чтобы все Robolectric и JUnit4 классы были доступны необходимо переключить Test Artifact в BuldVariant на Unit Test.

После чего можно начать писать сами тесты. Тестовый класс должен иметь следущющую структуру:

@RunWith(RobolectricTestRunner.class) @SmallTest public class SomeTestClass { @Test public void someTest(){ // код, тестирующий что либо } //остальные тесты }

Для запуска необходимо создать JUnit конфигурацию и запускать ее, либо через командую строку. Все юнит тесты будут запускать локально, т.е нет необходимости подключать телефон или запускать эмулятор.

UPD: если переключить Test Artifact на Unit Test, то папка test будет видна в типе проекта Android.

Карта
rss