Я пишу тестовые примеры для своего класса контроллера, который является приложением Spring Boot, и я хочу написать тестовые примеры только для класса контроллера, который вызывает сервис и сервис в репозиторий. Я использую SpringBootTest, который используется для создания экземпляров всех моих bean-компонентов. Я хочу издеваться только над вызовами базы данных и внешними вызовами API.
MyController {
@Autowired
MyService service;
//Api call for getDetails
service.getDetails();
}
MyService {
@Autowired
MyRepository repo;
}
MyControllertest {
@Autowired
MyController controller;
@Mock
MyRepository repoMock;
@Before
public void setup(){
// intit mocks
}
@Test
public void myTest(){
when(repoMock.getDetails()).thenReturn(null);
controller.getdetails();
}
}
Когда я запускаю тестовый пример, он не использует фиктивный репозиторий, а не использует репозиторий @Autowired
, который упоминается в классе Service.
Может ли кто-нибудь объяснить мне, как издеваться над репозиторием из класса контроллера.
Публикую так много вопросов в этом блоге, но я не получаю ответов.
MyControllertest
. Например.@RunWith(SpringJUnit4ClassRunner.class)
. - person Stefan Birkner   schedule 21.12.2017