2013-05-08 3 views
5

Я пытаюсь написать тестовый контрольно-измерительный тест (используя ActivityInstrumentationTestCase2) для конкретного Activity, где я меняю намерение каждый раз, когда проходит тест. Я могу сделать это с помощью одного теста, и просто зацикливаюсь, останавливая и перезапуская действие с новым намерением, но это не то, что я хочу. Одна из причин заключается в том, что они действительно должны быть отдельными пробными запусками. Другая причина заключается в том, что я использую Spoon, чтобы генерировать отчет, когда заканчиваются тесты, и отчет по праву будет считать, что я провел только один тест.Параметрированные контрольно-измерительные тесты на Android

Что бы я хотел, это рассматривать один тест как возможно бесконечное количество тестов и передавать данные в тест каждый раз, когда проходит тест.

К сожалению, вы не можете использовать Theories, потому что это приводит к ошибке RuntimeException, когда InstrumentationTestRunner не может найти мои тесты. Кому-нибудь повезло с этим?

ответ

0

Вы всегда можете просто создать «тестирование». Чтобы смоделировать перезапуск приложения, сделайте метод или несколько методов, которые сбросят все ваши статические переменные между тестами. Затем вы можете проверить классы изнутри тестирования намерения внутри самого приложения, используя

assert("value", MyClass.myMethod); 
resetStatics(); 
assert(true, MyClass,myMethod); 
resetStatics(); 

Я не знаю, насколько это поможет, если на всех, но это, как я начал писать свои собственные тесты.

0

Недавно я обнаружил, что вы можете добавить метод public static Test suite() к тестовому классу, а при запуске только одного тестового класса InstrumentationTestRunner запустит Test, возвращенный этим методом. Это полезно, потому что suite() может явно вызвать любой конструктор вашего TestCase, включая один с параметрами.

+0

Я искал передачу данных методам тестирования, а не классу –

+0

@ChristopherPerry. Создание нового тестового объекта для каждого значения, которое вы хотите протестировать, является стандартной парадигмой JUnit. –

+0

это не обязательно так. См. Здесь: https://blogs.oracle.com/jacobc/entry/junit_theories, нет смысла создавать новый тестовый объект, когда мой метод тестирования точно такой же, только с разными данными. –

Смежные вопросы