Qual é o uso real de 'fail' no caso de teste JUnit?
java
unit-testing
junit
junit4
Sanju
fonte
fonte
digamos que você esteja escrevendo um caso de teste para um fluxo -ve em que o código que está sendo testado deve gerar uma exceção
fonte
Acho que o caso de uso usual é chamá-lo quando nenhuma exceção foi lançada em um teste negativo.
Algo como o seguinte pseudo-código:
fonte
Eu usei no caso em que algo pode ter dado errado no meu método @Before.
fonte
@Before
método seja bem-sucedido, provavelmente é melhor verificar diretamente nesse método. Como um bônus, pelo menos o JUnit e o TestNG relatam até uma falha diferente para erros de@Before
/@After
métodos, portanto, podemos ver que o problema não estava no próprio teste.É assim que eu uso o método Fail.
Existem três estados em que seu caso de teste pode terminar em
pretendido (ao contrário dos casos de teste negativos que esperam que ocorra uma exceção).
Se você estiver usando o eclipse, três estados serão indicados por um marcador verde, azul e vermelho, respectivamente.
Eu uso a operação de falha no terceiro cenário.
por exemplo: público Número inteiro add (número inteiro a, Número inteiro b) {retorna novo Número inteiro (a.intValue () + b.intValue ())}
fonte
fail()
.Eu, por exemplo, uso
fail()
para indicar testes que ainda não foram concluídos (isso acontece); caso contrário, eles apareceriam como bem-sucedidos.Talvez isso se deva ao fato de eu não ter conhecimento de algum tipo de funcionalidade incompleta () que existe no NUnit.
fonte
Em configurações simultâneas e / ou assíncronas, convém verificar se determinados métodos (por exemplo, delegados, ouvintes de eventos, manipuladores de resposta, o nome dele) não são chamados. Zombando de estruturas de lado, você pode chamar
fail()
esses métodos para falhar nos testes. Os tempos limite expirados são outra condição de falha natural nesses cenários.Por exemplo:
fonte
O caso de uso mais importante é provavelmente a verificação de exceções.
Embora junit4 inclua o elemento esperado para verificar se uma exceção ocorreu, parece que não faz parte do junit5 mais recente. Outra vantagem do uso
fail()
excessivoexpected
é que você pode combiná-lo com afinally
limpeza de caso de teste.Como observado em outro comentário. Ter um teste com falha até que você possa concluir a implementação também parece razoável.
fonte