Open isaacmsl opened 9 months ago
Como exemplo de problema que só foi identificado a nível de controller, cito #183
Testamos isso com junit?
Isso, @RamonJales . Precisa esquecer do @DataMongoTest
pois esse tipo de anotação nos permite testar coisas específicas para repositórios mongo. Usando @SpringBootTest
no lugar, é possível fazer o @Autowired
com qualquer service. Exemplo:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTests {
@Autowired
UserService userService;
@Test
void shouldThrowIllegalArgumentoGoogleClient() {
assertThrows(IllegalArgumentException.class, () -> userService.welcome(""));
}
}
Dessa maneira estaríamos fazendo um test ent-to-end(pelas minhas pesquisas), ou seja, o test passaria pelo controller
, pelo service
e chegaria no repository
, depois faria o mesmo percurso para retornar a resposta. O que não seria muito interessante, pois o propósito é testar o controller
. Correto?
Dese modo, deveríamos usar a anotação @WebMvcTest
, que nos permite testar os controllers
da nossa aplicação. E ela vem com um método chamado MockMvc
que nos permitiria mockar nossos objetos.
No entanto, confesso que não está muito claro para mim como usar utilizar os mocks de objeto. Não faz muito sentido esse conceito.
Motivo
Já nos deparamos várias vezes com bugs que só acontecem quando uma requisição é feita para o sistema. Atualmente só testamos a nível de repository e isso acaba nos deixando cegos com o que acontece no controller e consequentemente no service.
Objetivo
Realizar testes de service e controller.