Tôi đã tìm thấy thư viện Embedded MongoDB trông khá hứa hẹn và thực hiện được những gì bạn yêu cầu.
Hiện hỗ trợ các phiên bản MongoDB:1.6.5
thành 3.1.6
, miễn là các tệp nhị phân vẫn có sẵn từ máy nhân bản đã định cấu hình.
Đây là ví dụ ngắn về cách sử dụng mà tôi vừa thử và nó hoạt động hoàn hảo:
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));
}
}