我正在使用node v10.16.0
和npm软件包mssql 5.1.0
和mocha 6.2.1
。
我想做的是编写一个SQL单元测试帮助程序类(ES6),该类处理事务并在每次单元测试后回滚。
db.js
const mssql = require("mssql");
const config = require("./config");
class DbAccess{
constructor(){
this.connection = new mssql.ConnectionPool(config.dbConfig);
this.connection.connect(err => {
// ...
})
this.transaction = new mssql.Transaction(this.connection);
}
beginTransaction(){
this.transaction.begin();
}
rollbackTransaction(){
this.transaction.rollback();
}
executeSql (sql, callback) {
this.connection.connect().then(() => {
var req = new mssql.Request(conn);
req.query(sql).then((recordset) => {
callback(recordset);
})
.catch ((err) => {
console.log(err);
logger.error(err);
callback(null, err);
});})
.catch ((err) => {
console.log(err);
logger.error(err);
callback(null, err);
});
}
}
test.js
before(() => {
dbAccess.beginTransaction();
});
after(() => {
dbAccess.rollbackTransaction();
});
describe('Test',function(){
describe('SelectAll()', function(){
it('returns all',function(){
dbAccess.insertrecords();
});
});
});
该设置无法正常运行,因为我收到了UnhandledPromiseRejectionWarning: ConnectionError: Connection not yet open.
我不知道怎么做