Testes Unitários em uma API Java REST, é possivel?

19/07/2018

64

Estou em um projeto que é uma API Java REST gigante que usa JWT, JPA e CDI. Estou a tentar fazer uma funcionalidade complexa no Backend e gostaria de realizar Testes Unitários porque acredito que seja uma caminho mais prático do que testar pelo Postman (pois precisa de enviar um token para JWT) e também acredito que seja melhor do que realizar consultas via Front-End. Quando tentei usar JUnit para testar funcionalidades da API me parece que o CDI não foi executado em conjunto.
Então fica a minha dúvida, é possível realizar Testes Unitários em um WebService com todas estas tecnologias? (JWT, CDI, JPA) Como que faz?
E é possível realizar testes sem precisar de usar Assert? Pois estou a implementar funcionalidades que nem sei o que pode sair de resultado...
Responder

Post mais votado

31/07/2018

Bom vou tentar te ajudar aos poucos.

Sim é possivel utilizar Testes unitários em "quase" tudo.
Para o CDI :
https://memorynotfound.com/java-se-unit-testing-cdi-junit-jboss-weld-se/
http://bryncooke.github.io/cdi-unit/
Com o JWT tem essa resposta :
https://stackoverflow.com/questions/45241566/spring-boot-unit-tests-with-jwt-token-security
Com o JPA não faz muito sentido o teste unitário já que aqui você esta fazendo a integração com o banco e seria um teste integrado.
Mesmo assim você pode tentar com o H2 : https://memorynotfound.com/unit-test-jpa-junit-in-memory-h2-database/

Em relação a "é possível realizar testes sem precisar de usar Assert? Pois estou a implementar funcionalidades que nem sei o que pode sair de resultado... "

Aqui você tem um problema de conceito ou de negócio, se você não sabe nem o que vai testar ou o que vai retornar o que você está testando ?
Todo o conceito de testes ou TDD é você validar algo, se você não sabe o que vai validar, não faz muito sentido testar.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar