2016-08-05 97 views
1

我用玩笑(使用茉莉花)建立数据库 - 集成测试茉莉/玩笑

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

在我setupteardown方法的集成测试一堆,我连接+清理数据库,并从断开它,分别。

我现在的问题是异步测试它们,因为在其他测试运行时db可能会被清除。建议如何解决这个问题?

我不能模拟数据库,因为我正在做很多直接查询。

回答

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

会等,如果有更好的答案