У меня есть приложение для обработки данных node.js, которое извлекает некоторые данные из mssql.Он работает нормально и дает ожидаемые результаты.Тем не менее, интеграционные тесты не работают, и я хотел бы, чтобы они.
Ниже приведено управление подключениями и функция тестового запроса.По выводу и запуску в отладчике я вижу, что тест запустился и не прошел до того, как база данных соединилась.Таким образом, похоже, что моя асинхронная установка Mocha не работает, но похоже, что все, что я видел в документации.
узел -v v10.15.0
chai: "^ 4.2.0", мокко:" ^ 5.2.0 "mssql:" ^ 4.3.0 ",
const config = require('./config')
const _ = require('underscore')
const sql = require('mssql')
sql.on('error', err => {
console.error('SQL Error', err)
})
let api = {}
api.connect = async dbConfig => {
return new sql.ConnectionPool(dbConfig).connect(
err => {
if (err)
console.error('Connection error', err)
else
console.log('connected')
})
}
var connecting = api.connect(config.sql)
api.simple = async () => {
let pool = await connecting
let result = await pool.request().query('select 1 as number')
return result.recordset[0].number
}
module.exports = api
Вот мой тест мокко для него, который не проходит
const { expect } = require('chai')
const data = require('../src/data')
describe('data access', function () {
it('is simple', async function () {
const yo = await data.simple()
expect(yo).to.exist
expect(yo).to.equal(1)
})
})
Я такжепробовал старый стиль асинхронных тестов mocha с использованием обратных вызовов done ala
it('is simple oldschool', function (done) {
data.simple()
.then(function(yo){
expect(yo).to.exist
expect(yo).to.equal(1)
done()
})
})
Это время вне зависимости от того, как долго я установил тайм-аут Mocha для (я пробовал до 60 секунд)
I 'Я в конце остроумие, кто-нибудь видит что-то не так?