MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como desabilitar o mongodb embutido do flapdoodle em certos testes


O daemon do Mongo incorporado é iniciado com EmbeddedMongoAutoConfiguration . Você pode desabilitar o início do daemon em um único teste excluindo EmbeddedMongoAutoConfiguration da digitalização:
@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(properties = "spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration")
public class DoNotStartMongoTest {
    //...

    @Test
    public void test() {
    }
}

Eu preferiria uma funcionalidade oposta:iniciar o daemon Mongo incorporado sob demanda. Para fazer isso, você precisa excluir EmbeddedMongoAutoConfiguration no código de produção:
@EnableMongoRepositories
@SpringBootApplication(exclude = EmbeddedMongoAutoConfiguration.class)
public class MySpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApplication.class, args);
    }
}

Em seguida, no código de teste, adicione uma anotação que permitirá o início do daemon Mongo incorporado:
@Retention(RUNTIME)
@Target(TYPE)
@Import(EmbeddedMongoAutoConfiguration.class)
public @interface EnableEmbeddedMongo {
}

E anote seu teste:
@RunWith(SpringRunner.class)
@SpringBootTest
@EnableEmbeddedMongo
public class StartMongoTest {
    //...

    @Test
    public void test() {
    }
}