Как я могу запустить набор тестов junit в нескольких классах тестирования? - PullRequest
1 голос
/ 30 сентября 2011

В моем веб-приложении есть несколько экранов, которые имеют общие веб-элементы. Я хочу утверждать, что все эти общие элементы существуют на каждой странице. Но я не хочу помещать все мои утверждения в одну служебную функцию, которая прервет работу на полпути, если один из них потерпит неудачу. Я хочу иметь отдельные тестовые случаи для каждого утверждения и запускать этот набор тестов в нескольких классах тестов (по одному на каждую страницу).

Я читал, что наследование - плохая идея, потому что тогда вам нужно копать глубже, чем класс непосредственных тестов, чтобы увидеть все выполняющиеся тесты. Но в то же время я не хочу поддерживать несколько копий тестов, которые являются общими для всех страниц.

1 Ответ

1 голос
/ 30 сентября 2011

Те же правила применяются к разработке тестов, которые применяются к остальной части вашей разработки, вы делаете то, что вам и вашей команде легче всего понять. У вас есть следующие варианты:

  1. Наследование: определение тестов в родительском классе. Я использовал наследование с тестами JUnit, включая тесты в родительском классе. Это работало и работало хорошо, и главное преимущество было в том, что он сохранял дублирующий код. Недостатки: вам приходится искать тесты в нескольких местах. Если дважды щелкнуть имя теста в представлении Junit в Eclipse, он перейдет в родительский класс, что иногда сбивает с толку.

  2. У вас есть класс специально для тестирования общих функций ваших страниц, назовем его PageTest. PageTest будет использовать @Parameterized для проверки всех страниц. Преимущества: Все ваши тесты на обычные вещи централизованы. Недостатки: если вы добавляете страницу, вам нужно добавить страницу в список. Вы можете избежать добавления материала в список, используя отражение, если это возможно. У нас был один набор тестов, который искал путь к классу для любого класса, унаследованного от определенного класса (в данном случае это Struts Action), и провел несколько тестов для этого класса.

Из двух вариантов я бы выбрал первый, потому что он меньше работает; все для одной страницы находится в одном месте, и вы никогда не забудете проверить общие элементы. Но это ваш проект, делайте то, что работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...