【发布时间】:2017-07-15 08:36:05
【问题描述】:
我想在我的 node.js 应用程序中对池连接 (mysql) 进行单元测试 (mocha & chai)。我不知道我是否以正确的方式使用测试,如果是,为什么它们总是被限定为“待定”。
给出以下代码,我将如何测试它?
var pool = mysql.createPool({
connectionLimit: 100,
host: 'localhost',
user: 'userName',
password: 'userPass',
database: 'userDatabase',
debug: false
});
我尝试了很多方法,但似乎都不起作用。我得到的最好的是:
describe("Database", function () {
describe("Connection", function () {
it("Should connect without an error", pool.getConnection(function (err, connection) {
expect(err).to.be.null;
})
);
})
});
如果凭据正确,将返回:
Express server listening on port 8080
Database
Connection
- Should connect without an error
0 passing (15ms)
1 pending
如果凭据不正确,则返回:
Express server listening on port 8080
Database
Connection
- Should connect without an error
1) Uncaught error outside test suite
0 passing (23ms)
1 pending
1 failing
1) Database Connection Uncaught error outside test suite:
Uncaught AssertionError: expected [Error: ER_DBACCESS_DENIED_ERROR: Access denied for user 'userName'@'localhost' to database 'userDatabase'] to be null
提前谢谢你。
【问题讨论】:
-
请注意,这是一个集成测试而不是单元测试。它测试两个系统一起工作,而不是 您的 应用程序中的单个功能单元独立运行良好。请参阅 stackoverflow.com/questions/1217736/… 以测试数据库调用。
标签: node.js unit-testing mocha.js chai node-mysql