Параметризованные тесты Android с различными наборами данных
В настоящее время я изучаю способы написания модульных и интеграционных тестов для приложений для Android. Я так запутался, что отсутствует возможность предоставить набор параметров непосредственно методу, как это делает библиотека JUnitParams. Итак, у меня есть несколько вопросов:
- Есть ли способ объединить AndroidJUnit4 и JUnitParamsRunner, чтобы объединить доступ к классам Android (например, Rect) с параметризованными методами?
- Если нет, то как лучше организовать архитектуру тестов? К примеру, у меня есть набор недопустимых данных, которые должны привести к исключению, и набор допустимых данных (пороговые значения и обычные) и два метода для их проверки. Должен ли я создать два класса для этой цели? (Поскольку невозможно предоставить разные наборы данных, которые будут использоваться в одном классе без клейкой ленты, такой как параметр enum и т. Д.)
1 ответ
Я не знаком с JUnitParamsRunner, но я бы рекомендовал создать несколько методов тестирования, по одному для каждого результата, который вы хотите проверить. Каждый класс, который вы тестируете, должен иметь свой собственный класс тестирования, и код, необходимый для тестирования, будет содержаться внутри него (кроме общих помощников).
Вот как обычно выглядят мои тесты (в основном, данные, когда, потом):
public void testExample() throws Exception {
// setup test data
// do the actual method calls
// assert the expected outcome
}