0
我正在学习摩卡和柴。 以为我在数据库连接测试中保持简单。在Mocha测试MySQL连接
起初测试看起来不错,但有些东西让我看起来更接近。 测试成功了,所以它们在某些情况下也应该失败吧? 我想看到一个失败,所以我不得不一个场景
it('db.connection.connect should return a connection object using default config.js credentials ', function(){
var result = "FAIL!";
db.connection.connect(function(err, result) {
if(err){
console.log("SQL CONNECT ERROR: " + err);
result=(err);
} else {
//console.log("SQL CONNECT SUCCESSFUL.");
//result = "SQL CONNECT SUCCESSFUL.";
console.log("Test succeeded but result should show fail");
}
expect(result).to.equal("SQL CONNECT SUCCESSFUL.");
});
});
不过,现在的测试将不会成功。 “结果”变量永远不会按预期更改。
it('db.connection.connect should return a connection object using default config.js credentials ', function(){
var result = "FAIL!";
db.connection.connect(function(err, result) {
if(err){
console.log("SQL CONNECT ERROR: " + err);
result=(err);
} else {
console.log("SQL CONNECT SUCCESSFUL.");
result = "SQL CONNECT SUCCESSFUL.";
//console.log("Test succeeded but result should show fail");
}
});
expect(result).to.equal("SQL CONNECT SUCCESSFUL.");
});
很酷。完成的回调让我们的摩卡知道测试已经完成。 事实证明,这种特殊的测试返回对象OkPacket { 段计数:0, affectedRows:0, insertId:0, serverStatus:2, WARNINGCOUNT:0, 消息: '', protocol41:真, changedRows:0} 所以我认为我在另一个级别上做了错误的测试。 –
您需要调整答案中的期望以适应实际收到的内容。代码中有一个名为'result'的变量以及一个名为'result'的参数,所以不清楚是什么。但是你的核心问题是缺乏回调。如果你评论期望值 - 或者用更能反映收到的东西来代替 - 你应该通过测试。 – cartant
@cartant在测试用例中测试数据库连接很重要吗? –