2016-08-05 10 views
1

Ich habe eine Reihe von Tests, Integration mit Jest (der Jasmin verwendet)Einrichten Datenbank - Integrationstest mit Jasmin/Jest

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

In meinen setup und teardown Methoden, ich Verbindungs ​​+ Datenbank Clearing und Trennen es jeweils.

Mein Problem ist jetzt, sie asynchron zu testen, da die Datenbank gelöscht werden kann, während andere Tests ausgeführt werden. Was ist der empfohlene Weg, um das zu lösen?

Ich kann die Datenbank nicht verspotten, da ich viele direkte Abfragen mache.

Antwort

1

Gerade ausgecheckt Objection.js (Javascript ORM). In ihren Integrationstests erstellt und führt sie im Wesentlichen eine Datenbanksitzung und führt die Tests synchron aus.

Objection Integration Test

Grundsätzlich in Pseudo-Code:

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

wartet, wenn es bessere Antworten

Verwandte Themen