sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo deshabilitar mongodb incrustado de flapdoodle en ciertas pruebas

El demonio de Mongo incorporado se inicia con EmbeddedMongoAutoConfiguration . Puede deshabilitar el inicio del daemon en una sola prueba excluyendo EmbeddedMongoAutoConfiguration de escaneo:

@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(properties = "spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration")
public class DoNotStartMongoTest {
    //...

    @Test
    public void test() {
    }
}

Preferiría una funcionalidad opuesta:iniciar el demonio Mongo incrustado a pedido. Para hacer esto, debe excluir EmbeddedMongoAutoConfiguration en código de producción:

@EnableMongoRepositories
@SpringBootApplication(exclude = EmbeddedMongoAutoConfiguration.class)
public class MySpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApplication.class, args);
    }
}

Luego, en el código de prueba, agregue una anotación que habilitará el inicio del demonio Mongo integrado:

@Retention(RUNTIME)
@Target(TYPE)
@Import(EmbeddedMongoAutoConfiguration.class)
public @interface EnableEmbeddedMongo {
}

Y anota tu prueba:

@RunWith(SpringRunner.class)
@SpringBootTest
@EnableEmbeddedMongo
public class StartMongoTest {
    //...

    @Test
    public void test() {
    }
}