【问题标题】:Setting up Database - Integration Test with Jasmine/Jest设置数据库 - 使用 Jasmine/Jest 进行集成测试
【发布时间】:2016-12-09 06:45:20
【问题描述】:

我有一堆使用 Jest(使用 Jasmine)的集成测试

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

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

我现在的问题是异步测试它们,因为在其他测试运行时数据库可以被清除。解决此问题的推荐方法是什么?

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

【问题讨论】:

    标签: jasmine jestjs


    【解决方案1】:

    刚刚检查了 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)
    });
    

    如果有更好的答案会等待

    【讨论】:

    • 太好了,我可以使用这个模式。我只是想知道它是否仍然是要走的路?
    猜你喜欢
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 2013-06-07
    • 2019-09-06
    相关资源
    最近更新 更多