Se eu tiver que responder em uma frase, é porque Springboot é Opinião. Ele tentará se conectar ao mongo assim que perceber a dependência do mongo em seu pom através de
AutoConfiguration
Aulas. Se você quiser substituir o comportamento padrão e dizer ao Springboot para não fazer o MongoAutoConfiguration, você pode fazer dessa maneira
@SpringBootApplication(exclude=MongoAutoConfiguration.class)
public class YourMainApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
ou você pode fazer isso com esta linha em seu arquivo de propriedades
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
Se você fizer qualquer um dos itens acima, ele excluirá o MongoAutoconfiguration do seu aplicativo (não apenas dos seus testes). O que significa que quando você inicia seu aplicativo, você não tem acesso ao mongo (se é isso que você deseja).
Desde
SpringbootTest
anotação carrega todo o cotexto da aplicação, ela procura por esta classe Main Application. Se você tiver algumas Autoconfigurações excluídas, elas serão excluídas, mesmo em seus testes. Portanto, você não teria o problema de conexão com o mongo. Se você deseja excluir esta Autoconfiguração apenas em testes (para que durante a execução de sua aplicação nada seja alterado), você pode fazê-lo desta forma
@TestPropertySource(properties=
{"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration"})
@SpringBootTest
public class GreetingControllerTests {...}