【发布时间】:2016-08-22 14:55:00
【问题描述】:
我有相对简单的 mocha & chai 测试设置。不幸的是,当我运行 mocha 时,肯定会失败的测试通过了!这是我的测试用例。
var expect = require('chai').expect;
var nock = require('nock');
var request = require('request');
var testUrl = 'http://test.wicked.ti';
var getItems = function(url, callback) {
request.get(url + '/items',function(err, data) {
if(err) throw err;
callback(data);
});
};
describe('Sample Unit Tests', function(){
it('I am making sure the correct rest endpoint is called', function() {
var request = nock(testUrl)
.get('/items')
.reply(200, {});
getItems(testUrl, function(data) {
console.log(data); // This runs
expect(true).to.equal(false); // This should always fail!
done();
});
});
});
将expect(true).to.equal(false) 包装在try catch 中会引发一个错误(如下所示),该错误会被很好地捕获。那就是
it('I am making sure the correct rest endpoint is called', function() {
var request = nock(testUrl)
.get('/items')
.reply(200, {});
getItems(testUrl, function(data) {
console.log(data); // This runs
// Adding try/catch block
try { expect(true).to.equal(false); } catch(err) { console.error(err) }
done();
});
这是记录的错误
{ [AssertionError: expected true to equal false]
message: 'expected true to equal false',
showDiff: true,
actual: true,
expected: false }
我一直在绞尽脑汁想弄清楚我可能做错了什么而没有成功!问题是我错过了什么?如果有任何帮助,我试图在describe() 和it() 块之外写这个,它运行得很好。
【问题讨论】:
-
试试
it('something', function(done){ ...?
标签: javascript unit-testing mocha.js