2016-08-05 58 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) 
}); 

會等,如果有更好的答案