在以下脚本中,只传递了一个测试。测试错误(throw Error())失败并显示消息 1)测试应该抛出错误:
var expect = require('chai').expect;
describe("a test", function() {
var fn;
before(function() {
fn = function(arg){
if(arg == 'error'){
throw new Error();
}else{
return 'hi';
}
}
});
it("should throw error", function() {
expect(fn('error')).to.throw(Error);
});
it("should return hi", function() {
expect(fn('hi')).to.equal('hi');
});
});
如何改变期望测试错误?
答案 0 :(得分:3)
expect()
需要调用函数,而不是函数的结果。
将您的代码更改为:
expect(function(){ fn("error"); }).to.throw(Error);
答案 1 :(得分:0)
如果您使用错误第一次回调的Node方式,它看起来更像是这样:
var expect = require('chai').expect;
describe("a test", function() {
var fn;
before(function() {
fn = function(err, callback){
if(err) throw new Error('failure');
return callback();
}
});
it("should throw error", function() {
expect(fn('error')).to.throw(Error);
});
it("should return hi", function() {
var callback = function() { return 'hi' };
expect(fn(null, callback).to.equal('hi');
});
});