Etiquetas
acesso antecipado, desenvolvimento orientado a testes, early access, ferramentas de teste, tdd, test-driven development
Fui testar uma das novidades que estão para serem lançadas: JUnit 5. A primeira aparência é que tem várias funcionalidades legais, como testes parametrizados (posso passar vários parâmetros para um mesmo teste rodar várias vezes), assert de Exception melhorado, agrupar testes por Tags e etc.
Criei uma branch do meu projeto java-sample-project utilizando algumas funcionalidades do JUnit 5 com o Spring Boot e vou resumir apenas algumas das funcionalidades:
Testes Parametrizados
- Te dá a habilidade de rodar o mesmo teste com parâmetros diferentes, vindo de diferentes fontes: Valores puros (String, Integer, etc.), Enum, CSV, Métodos…
- No meu projeto, utilizei o @MethodSource para exemplo:
- Com isso, o teste irá procurar um método chamado createUsers que retorna um Stream<Arguments>:
- Os parâmetros esperados no meu método do teste são: um User e um Integer, e nesse Stream eu estou passando os dois. O teste irá executar primeiro com o userOne() e 1, e depois com userTwo() e 2.
Assert Exceptions
- Com o JUnit 4 era possível testar exceções, tanto com o @Test(expected=…) quanto com o Exception Rule (ExpectedException). Esse último ainda era possível validar a mensagem da exceção. Mas acredito que nada se compara com esse assertThrows: