Вы не можете тестировать android API с помощью модульных тестов, но вместо этого вам нужно проводить инструментальные тесты пользовательского интерфейса.
Это потому, что вам нужно получить доступ к своей деятельности и элементам пользовательского интерфейса, как в вашем случае EditText
.
модульные тесты могут быть написаны в пакете test
java, а инструментальные тесты могут быть написаны в androidTest
пакете.
Чтобы получить экземпляр действия в ваш тест, вам нужно создать правило, используя аннотацию @Rule:
@Rule
public ActivityTestRule mMainActivityRule = new ActivityTestRule<>(
MainActivity.class);
Здесь я предполагаю, что ваша деятельность называется MainActivity
Затем вы можете получить доступ к виджетам пользовательского интерфейса с помощью Espresso. ViewMatchers
и затем вы можете применить к ним действия, используя ViewActions
.
Например, чтобы проверить, содержит ли текстовая строка usernameID
EditText определенную строку:
onView(withId(R.id.usernameID)).check(matches(withText(containsString("SOME_TEXT"))));
Демо инструментальный тестовый класс
@RunWith(AndroidJUnit4.class)
public class EditTextTest {
@Rule
public ActivityTestRule mMainActivityRule = new ActivityTestRule<>(
MainActivity.class);
@Test
public void editTextTest() {
onView(withId(R.id.editText_main)).check(matches(withText(containsString("SOME_TEXT"))));
}
}
Проверка документация для получения дополнительной помощи.