У меня есть тестовый класс, помеченный @SpringBootTest, он также имеет @AutoConfigureWebTestClient для тестирования некоторых функций маршрутизатора. Все обработчики в маршрутизаторе имеют репозитории @Autowired, которые go относятся к couchbase. Я использую @MockBean для тестирования одного из репозиториев, но другие не использую.
Router
@Configuration
public class Router {
public Router(Handler1 handler1, Handler2 handler2){
this.handler1 = handler1;
this.handler2 = handler2;
}
@Bean
public RouterFunction<ServerResponse> route() {
return RouterFunctions()
.route(GET("/path1").and(accept(MediaType.APPLICATION_JSON)), handler1::findAll)
.andRoute(GET("/path2").and(accept(MediaType.APPLICATION_JSON)), handler2::findAll);
}
Класс обработчика
@Service
public class Handler1{
Repository1 repository;
@Autowired
public Handler1(Repository1 repository){
this.repository = repository;
}
}
Test Class
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
@AutoConfigureWebTestClient
public class Handler1Test {
@Autowired
private WebTestClient webClient;
@MockBean
private Repository1 repositoryMock;
@Test
public void findAll() throws IOException {
Mockito.when(repositoryMock.findall()).thenReturn(Mono.just(""));
webClient.get()
.uri("/path1")
.accept(MediaType.APPLICATION_JSON)
.exchange()
.expectStatus().isOk();
}
}
Каждый раз, когда я запускаю тест, он подключается к базе данных. Но тест использует макет правильно.
Журналы показывают это:
2020-06-19 15:36:45.295 INFO 41724 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Couchbase repositories in DEFAULT mode.
2020-06-19 15:36:45.525 INFO 41724 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 229ms. Found 21 Couchbase repository interfaces.
Как я могу остановить соединение?
РЕДАКТИРОВАТЬ: Если я добавлю эту аннотацию все еще хочет подключиться
@EnableAutoConfiguration(exclude = {CouchbaseAutoConfiguration.class,
CouchbaseDataAutoConfiguration.class,
CouchbaseRepositoriesAutoConfiguration.class,
CouchbaseReactiveDataAutoConfiguration.class,
CouchbaseReactiveRepositoriesAutoConfiguration.class})