<dependencies> ... <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager --> <dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.6.2</version> <scope>test</scope> </dependency> </dependencies>
Tester un composant (Controller, service…)
@Controller
public class HelloController {
@Autowired
private HelloService helloService;
@GetMapping("/hello")
public @ResponseBody String helloAction() {
return helloService.getMessage();
}
@ModelAttribute("message")
public String getMessage() {
return helloService.getMessage();
}
@GetMapping("/hello/view")
public String helloViewAction() {
return "hello";
}
@GetMapping("/auth/hello")
public @ResponseBody String authHelloAction() {
return helloService.getAuthMessage();
}
@GetMapping("/hello/js/{msg}")
public String helloWithJSAction(@PathVariable String msg) {
return "helloJs";
}
}
Mocking :
@WebMvcTest(HelloController.class)
@ContextConfiguration(classes = {WebSecurityConfig.class, SpringTestsApplication.class})
class HelloControllerTest {
@MockBean
private HelloService helloService;
@Autowired
private MockMvc mockMvc;
@Test
void helloShouldReturnBonjour() throws Exception {
// Given
when(helloService.getMessage()).thenReturn("Bonjour");
// When