使用Jasmine / Jest设置数据库 - 集成测试

时间:2016-08-05 13:35:56

标签: jasmine jestjs

我使用Jest(使用Jasmine)进行了一系列集成测试

describe('DB User', async () => {
  beforeEach(setup)
  afterEach(teardown)
})

在我的setupteardown方法中,我分别连接+清除数据库并断开连接。

我现在的问题是异步测试它们,因为在其他测试运行时db可以被清除。建议的解决方法是什么?

我无法模拟数据库,因为我正在进行大量的直接查询。

1 个答案:

答案 0 :(得分:3)

刚检查出Objection.js(Javascript ORM)。在他们的集成测试中,它基本上创建并保持一个数据库会话并同步运行测试。

Objection Integration Test

基本上,在伪代码中:

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)
});

如果有更好的答案,请等待