Посмотрите на отчет 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, которая усложняет жизнь многим разработчикам тестов.