Я пишу тест контроллера, где контроллер выглядит как
@RestController
public class VehicleController {
@Autowired
private VehicleService vehicleService = null;
...
}
В то время как класс теста выглядит как
@RunWith(SpringRunner.class)
@WebMvcTest(VehicleController.class)
public class VehicleControllerTest {
@Autowired
private MockMvc mockMvc = null;
@MockBean
private VehicleService vehicleServie = null;
@Test
public void test() {
...
}
}
Когда я запускаю этот тест, он терпит неудачу со следующей ошибкой
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.database.repositories.SomeOtherRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
Здесь SomeOtherRepository
не используется в данном контроллере или службе.
Если я сделаю @MockBean
для SomeOtherRepository
, тест работает, но та же проблема возникает для остальных репозиториев.
@MockBean private SomeOtherRepository someOtherRepository = null
...
# Bunch of other repositories
В идеале меня не должны беспокоить все репозитории, кроме того, которое я использую.Что мне здесь не хватает?Как я могу избежать написания связки @MockBean
с?