我使用Jest(使用Jasmine)进行了一系列集成测试
describe('DB User', async () => {
beforeEach(setup)
afterEach(teardown)
})
在我的setup
和teardown
方法中,我分别连接+清除数据库并断开连接。
我现在的问题是异步测试它们,因为在其他测试运行时db可以被清除。建议的解决方法是什么?
我无法模拟数据库,因为我正在进行大量的直接查询。
答案 0 :(得分:3)
刚检查出Objection.js(Javascript ORM)。在他们的集成测试中,它基本上创建并保持一个数据库会话并同步运行测试。
基本上,在伪代码中:
var session = initialize()
describe(knexConfig.client, function () {
before(function () {
return session.clearDb();
});
after(function () {
// destroy db connection
return session.destroy();
});
// individual tests
require('./test')(session)
});
如果有更好的答案,请等待