MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB intégré lors de l'exécution de tests d'intégration

J'ai trouvé la bibliothèque Embedded MongoDB qui semble assez prometteuse et fait ce que vous avez demandé.

Prend actuellement en charge les versions de MongoDB :1.6.5 à 3.1.6 , à condition que les fichiers binaires soient toujours disponibles à partir du miroir configuré.

Voici un petit exemple d'utilisation, que je viens d'essayer et qui fonctionne parfaitement :

public class EmbeddedMongoTest {
    private static final String DATABASE_NAME = "embedded";

    private MongodExecutable mongodExe;
    private MongodProcess mongod;
    private Mongo mongo;

    @Before
    public void beforeEach() throws Exception {
        MongoDBRuntime runtime = MongoDBRuntime.getDefaultInstance();
        mongodExe = runtime.prepare(new MongodConfig(Version.V2_3_0, 12345, Network.localhostIsIPv6()));
        mongod = mongodExe.start();
        mongo = new Mongo("localhost", 12345);
    }

    @After
    public void afterEach() throws Exception {
        if (this.mongod != null) {
            this.mongod.stop();
            this.mongodExe.stop();
        }
    }

    @Test
    public void shouldCreateNewObjectInEmbeddedMongoDb() {
        // given
        DB db = mongo.getDB(DATABASE_NAME);
        DBCollection col = db.createCollection("testCollection", new BasicDBObject());

        // when
        col.save(new BasicDBObject("testDoc", new Date()));

        // then
        assertThat(col.getCount(), Matchers.is(1L));
    }
}