Anda dapat melakukannya menggunakan mongodb-memory-server . Paket mengunduh biner mongod ke direktori home Anda dan membuat instance MondoDB baru yang didukung memori sesuai kebutuhan. Untuk setiap file pengujian, Anda dapat menjalankan server baru yang berarti Anda dapat menjalankan semuanya secara paralel.
Untuk pembaca yang menggunakan bercanda dan driver mongodb asli , Anda mungkin menemukan kelas ini berguna:
const { MongoClient } = require('mongodb');
const { MongoMemoryServer } = require('mongodb-memory-server');
// Extend the default timeout so MongoDB binaries can download
jest.setTimeout(60000);
// List your collection names here
const COLLECTIONS = [];
class DBManager {
constructor() {
this.db = null;
this.server = new MongoMemoryServer();
this.connection = null;
}
async start() {
const url = await this.server.getUri();
this.connection = await MongoClient.connect(url, { useNewUrlParser: true });
this.db = this.connection.db(await this.server.getDbName());
}
stop() {
this.connection.close();
return this.server.stop();
}
cleanup() {
return Promise.all(COLLECTIONS.map(c => this.db.collection(c).remove({})));
}
}
module.exports = DBManager;
Kemudian di setiap file pengujian Anda dapat melakukan hal berikut:
const dbman = new DBManager();
afterAll(() => dbman.stop());
beforeAll(() => dbman.start());
afterEach(() => dbman.cleanup());
Saya menduga pendekatan ini mungkin serupa untuk kerangka kerja pengujian lainnya.