Посмотрите на отчет JUnit.JUnit уже организован по пакетам.Каждый пакет имеет (или может иметь) классы TestSuite, каждый из которых, в свою очередь, запускает несколько тестовых случаев.Каждый TestCase может иметь несколько методов тестирования в форме public void test*()
, каждый из которых фактически станет экземпляром класса TestCase, к которому они принадлежат.Каждый метод тестирования (экземпляр TestCase) имеет имя и критерии прохождения / неудачи.
Моему руководству требуется концепция отдельных TestStep элементов, каждый из которых сообщает о своем прохождении / неудаче.критерии.Сбой любого шага тестирования не должен препятствовать выполнению последующих шагов тестирования.
Раньше разработчики тестов, на моей позиции, организовывали классы TestCase в пакеты, которые соответствуют части (-ям) тестируемого продукта, создаваемогокласс TestCase для каждого теста, и каждый метод теста стал отдельным «шагом» в тесте, дополненным собственными критериями прохождения / неудачи в выходных данных JUnit.Каждый TestCase - это отдельный «тест», но отдельные методы или «шаги» теста в TestCase должны выполняться в определенном порядке.
Методы TestCase были шагами TestCase, и разработчики тестов получилиотдельный критерий прохождения / отказа для каждого этапа теста.Теперь этапы теста перемешаны, и тесты (конечно) не пройдены.
Например:
Class testStateChanges extends TestCase
public void testCreateObjectPlacesTheObjectInStateA()
public void testTransitionToStateBAndValidateStateB()
public void testTransitionToStateCAndValidateStateC()
public void testTryToDeleteObjectinStateCAndValidateObjectStillExists()
public void testTransitionToStateAAndValidateStateA()
public void testDeleteObjectInStateAAndObjectDoesNotExist()
public void cleanupIfAnythingWentWrong()
Каждый метод тестирования утверждает и сообщает свои собственные отдельные критерии прохождения / неудачи.Объединение этого в «один большой метод тестирования» для упорядочения теряет гранулярность критериев прохождения / сбоя каждого «шага» в сводном отчете JUnit.... и это расстраивает моих менеджеров.В настоящее время они требуют другой альтернативы.
Может ли кто-нибудь объяснить, как JUnit с упорядоченным методом зашифрованного теста будет поддерживать отдельные критерии прохождения / сбоя каждого последовательного шага тестирования, как показано выше и требуется моим руководством?
Независимо от документации, я рассматриваю это как серьезный регресс в инфраструктуре JUnit, который усложняет жизнь многим разработчикам тестов.