设置数据库 - 使用 Jasmine/Jest 进行集成测试
Setting up Database - Integration Test with Jasmine/Jest
我有一堆使用 Jest(使用 Jasmine)的集成测试
describe('DB User', async () => {
beforeEach(setup)
afterEach(teardown)
})
在我的setup
和teardown
方法中,我分别连接+清除数据库和断开连接。
我现在的问题是异步测试它们,因为数据库可能会在其他测试 运行 时被清除。推荐的解决方法是什么?
我无法模拟数据库,因为我正在做很多直接查询。
刚刚签出 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)
});
如果有更好的答案会等待
我有一堆使用 Jest(使用 Jasmine)的集成测试
describe('DB User', async () => {
beforeEach(setup)
afterEach(teardown)
})
在我的setup
和teardown
方法中,我分别连接+清除数据库和断开连接。
我现在的问题是异步测试它们,因为数据库可能会在其他测试 运行 时被清除。推荐的解决方法是什么?
我无法模拟数据库,因为我正在做很多直接查询。
刚刚签出 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)
});
如果有更好的答案会等待