#android #user-interface #automation #android-espresso
#Android #пользовательский интерфейс #автоматизация #android-espresso
Вопрос:
Ниже приведен фрагмент кода
@Test
fun verifyInvalidAge() {
for (i in 15..30) {
onView(withId(R.id.editTextNumber)).perform(replaceText(i.toString()))
onView(withId(R.id.button)).perform(click())
onView(withId(R.id.statusTextView)).check(matches(withText("You can't drink yet :(")))
}
}
Я хочу сообщать о сбоях, если таковые имеются, для любого ввода и продолжить тест.
Хотите просмотреть отчет о тестировании на основе моих входных данных после выполнения теста.
Ответ №1:
Чтобы сделать что-то подобное, вы хотели бы использовать так называемые параметризованные тесты.
Эти тесты проходят через набор значений и запускают тест для каждого значения в наборе.
Ниже приведен пример:
@RunWith(Parameterized.class)
public class FibonacciTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 }
});
}
private int fInput;
private int fExpected;
public FibonacciTest(int input, int expected) {
this.fInput = input;
this.fExpected = expected;
}
@Test
public void test() {
assertEquals(fExpected, Fibonacci.compute(fInput));
}
}
Более подробная информация здесь:
https://github.com/junit-team/junit4/wiki/Parameterized-tests