Veja um relatório JUnit. O JUnit já está organizado por pacote. Cada pacote possui (ou pode ter) classes TestSuite, cada uma das quais, por sua vez, executa vários TestCases. Cada TestCase pode ter vários métodos de teste do formulário public void test*()
, cada um dos quais realmente se tornará uma instância da classe TestCase à qual eles pertencem. Cada método de teste (instância TestCase) possui um nome e um critério de aprovação / reprovação.
O que meu gerenciamento exige é o conceito de itens individuais do TestStep , cada um deles relatando seus próprios critérios de aprovação / reprovação. A falha de qualquer etapa do teste não deve impedir a execução das etapas subseqüentes.
No passado, os desenvolvedores de testes em minha posição organizavam as classes TestCase em pacotes que correspondiam às partes do produto em teste, criavam uma classe TestCase para cada teste e tornavam cada método de teste uma "etapa" separada no teste, complete com seus próprios critérios de aprovação / reprovação na saída JUnit. Cada TestCase é um "teste" independente, mas os métodos individuais, ou "etapas" de teste no TestCase, devem ocorrer em uma ordem específica.
Os métodos do TestCase foram as etapas do TestCase, e os projetistas de testes obtiveram um critério de aprovação / reprovação separado por etapa do teste. Agora as etapas do teste são confusas e os testes (é claro) falham.
Por exemplo:
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()
Cada método de teste afirma e reporta seus próprios critérios de aprovação / reprovação separados. Colocar isso em "um grande método de teste" para fins de pedido perde a granularidade dos critérios de aprovação / reprovação de cada "etapa" no relatório de resumo da JUnit. ... e isso incomoda meus gerentes. Atualmente, eles estão exigindo outra alternativa.
Alguém pode explicar como uma JUnit com ordenação de método de teste codificado suportaria critérios de aprovação / reprovação separados de cada etapa de teste seqüencial, como exemplificado acima e exigido por minha gerência?
Independentemente da documentação, vejo isso como uma regressão séria na estrutura do JUnit que está dificultando a vida de muitos desenvolvedores de teste.