Si tengo que responder en una oración, es porque Springboot es obstinado. Intentará conectarse a mongo tan pronto como note la dependencia de mongo en su pom a través de AutoConfiguration
clases
Si desea anular el comportamiento predeterminado y decirle a Springboot que no realice MongoAutoConfiguration, puede hacerlo de esta manera
@SpringBootApplication(exclude=MongoAutoConfiguration.class)
public class YourMainApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
o puede hacerlo con esta línea en su archivo de propiedades
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
Si realiza cualquiera de las acciones anteriores, excluirá MongoAutoconfiguration de su aplicación (no solo de sus pruebas). Lo que significa que cuando inicia su aplicación, no tiene acceso a mongo (si esto es lo que desea).
Desde SpringbootTest
La anotación carga todo el cotexto de la aplicación, busca esta clase de aplicación principal. Si tiene algunas configuraciones automáticas excluidas, se excluirán, incluso en sus pruebas. Por lo tanto, no tendría el problema de conexión a mongo.
Si desea excluir esta Autoconfiguración solo en las pruebas (para que mientras ejecuta su aplicación nada cambie), puede hacerlo de esta manera
@TestPropertySource(properties=
{"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration"})
@SpringBootTest
public class GreetingControllerTests {...}