当使用mocha测试sails应用程序的模型时,它似乎没有在回调中运行测试:
var assert = require('assert');
describe('Dataset', function() {
describe('create', function() {
it('should create a new dataset', function() {
Dataset.create({
'name': 'testDataSet',
'description': 'This dataset exists for testing purposes only.',
'visibility': 'private',
'data': {
"foo": {
"barn": "door",
"color": "green"
}
}
}, function(err, dataset) {
assert(false);
});
});
});
});
该测试由一个初始化sails的脚本调用。 当运行此测试时,它会通过,即使它应该失败。
$: mocha
1 passing (875ms)
此外,似乎永远不会运行包含assert(false)的回调。将assert false置于任何其他位置会产生exepcted结果,sails似乎也正常运行。
非常感谢任何帮助。
答案 0 :(得分:3)
您的代码是异步的,因此您应该在测试函数中使用回调:
var assert = require('assert');
describe('Dataset', function() {
describe('create', function() {
it('should create a new dataset', function(done) {
Dataset.create({
'name': 'testDataSet',
'description': 'This dataset exists for testing purposes only.',
'visibility': 'private',
'data': {
"foo": {
"barn": "door",
"color": "green"
}
}
}, function(err, dataset) {
if (err) throw err;
done();
});
});
});
});
在您需要的任何地方添加assert
电话。
有很多例子here。