Первый абзац, который вы упомянули, является ответом на ваш вопрос: вам не нужно, чтобы Spring писал модульные тесты для написанных вами классов, даже если они являются бобами Spring.
Другие упомянутые вами случаи на самом деле не являются юнит-тестами. При тестировании репозитория с использованием SpringRunner
и фиктивной базы данных вы больше не пишете модульный тест, а интеграционный тест . То же самое относится и к написанию тестов для вашего контроллера с использованием MockMvc
. В обоих случаях вы тестируете интеграцию между средой Spring (Spring MVC или Spring Data) с вашим кодом (и базой данных).
Однако вы можете написать модульные тесты для вашего контроллера, но в этом случае вы бы предпочли сделать что-то вроде этого:
@Controller
public class HelloWorldController {
@RequestMapping("/hello")
public ModelAndView getHello() {
return new ModelAndView("hello", "title", "hello world");
}
}
public class HelloWorldControllerTest {
private HelloWorldController controller;
@Before
public void setUp() {
controller = new HelloWorldController();
}
@Test
public void getHelloShouldUseHelloView() {
assertThat(controller.getHello().getViewName()).isEqualTo("hello");
}
@Test
public void getHelloShouldAddATitleModel() {
assertThat(controller.getHello().getModel()).containsEntry("title", "Hello world");
}
}