这个问题在这里已经有答案了:
Mocha/Chai expect.to.throw未捕获抛出错误
(7个答案)
(7个答案)
四年前关闭的
我希望能在这个问题上找到一些帮助。我正在尝试为我正在编写的应用程序编写测试。我已将问题提炼为以下示例代码。我想测试是否抛出了错误。我使用TestCular作为测试运行程序,mocha作为框架,chai作为断言库。测试运行,但测试失败,因为抛出了错误!非常感谢您的帮助
函数iThrowError(){
抛出新错误(“抛出错误”);
}
var assert=chai.assert,
expect=chai.expect;
描述('应用程序',函数()){
描述('此功能',函数(){
它(“是一个函数”,函数(){
throw(iThrowError(),Error,“Error-throw”);
});
});
});
您没有以正确的方式将函数传递给assert.throws()
assert.throws()函数需要一个函数作为其第一个参数。在代码中,当调用assert.throws()时,调用iThrowError并传递其返回值
基本上,改变这一点:
assert.throws(iThrowError(),Error,Error,Error-thrown);
为此:
assert.throws(iThrowError,Error,Error,Error-thrown);
应该能解决你的问题
使用args:
assert.throws(()=>;{iThrowError(args)},错误);
或
assert.throws(函数(){iThrowError(args)},Error,/Error-thrown/);