Опубликовано: 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.