2016-08-05 3 views
1

У меня есть куча интеграционных тестов с использованием шутя (который использует жасмин)Настройки базы данных - Тест Интеграции с Жасмин/Jest

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

В моей setup и teardown методе, я подключаю + очистку базы данных и отключение от это, соответственно.

Теперь моя проблема протестирует их асинхронно, так как db может быть очищен во время других тестов. Каков рекомендуемый способ решить эту проблему?

Я не могу издеваться над 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) 
}); 

будет ждать, если есть лучшие ответы