我正在尝试使用Jest为我的Node.js后端应用程序编写测试。
后端通过猫鼬实现了mongodb
实现。
我需要有一个全局挂钩,在所有测试文件中运行 all 测试之前,我可以在其中连接数据库。
在Mocha中,我可以像documented here那样轻松地完成操作:
您还可以选择任何文件并添加“根”级挂钩。例如,在所有
beforeEach()
块之外添加describe()
。这将使回调beforeEach()
在任何测试用例之前运行,无论它位于哪个文件中(这是因为Mocha有一个隐含的describe()
块,称为“根套件”)。>
例如,我可以创建一个testHelper.js
文件并编写:
const mongoose = require('mongoose');
// ./test/testHelper.js
before((done) => {
const mongoURI = `${process.env.DB_MONGO_URI}/testdb`;
mongoose.connect(mongoURI, { useNewUrlParser: true});
mongoose.connection
.once('open', done)
.on('error', (error) => {
console.warn(error);
done();
});
});
after(() => {
mongoose.disconnect();
});
以上内容将在所有测试文件中的所有测试之前和之后运行。
我如何用笑话来做同样的事情?
答案 0 :(得分:1)
Jest API为此提供了beforeAll
and afterAll
。
它与Mocha共享顶级隐式describe()
块的概念,其他块不必一定放在describe
内,包括beforeAll
和afterAll
请注意,由于Jest测试是同时运行的,beforeAll
和afterAll
仅会影响当前的测试环境,即同一文件中定义的测试。