【发布时间】:2021-04-23 05:32:33
【问题描述】:
NodeJS 上正在运行一个应用程序。它的架构灵感来自 Oncle Bob 的书:“清洁架构”。一切都很完美,但是:
目前,我们对使用 fake-DB 运行的所有模块进行了单元测试。我们希望以这种方式进行集成测试:使用相同的测试(与我们用于单元测试的测试一样)进行集成测试,但“注入”真实的数据库。
我怎么能用jest 做到这一点?我不想复制所有的单元测试代码并创建代码重复(测试设置除外)。
单元测试实际上是这样的:
const DB = require("FakeDB");
let test_description = "unit-testing with FakeDB";
describe(`${test_description}`, () => {
let db;
beforeAll(() => {
const cnf = create_config("test");
db = new DB(cnf);
});
afterAll( () => {
db.connection_close();
});
test("should save entity to DB", () => {
try {
// execute: save entity to DB
} catch (err) {
console.error(err);
}
})
})
我如何注入另一个数据库,例如到require("PostgresDB")?
【问题讨论】:
标签: node.js unit-testing testing jestjs integration-testing