我一直在尝试编写一个处理错误的函数的文本,如果它是一个有效的错误,它就会被抛出,但如果不是,那么什么都不会抛出。问题是我似乎无法在使用时设置参数:
expect(handleError).to.throw(Error);
理想的情况是使用:
expect(handleError(validError)).to.throw(Error);
有没有办法实现这个功能?
函数代码:
function handleError (err) {
if (err !== true) {
switch (err) {
case xxx:
...
}
throw "stop js execution";
else {}
}
以及测试代码(未按预期工作):
it("should stop Javascript execution if the parameter isnt \"true\"", function() {
expect(handleError).to.be.a("function");
expect(handleError(true)).to.not.throw(Error);
expect(handleError("anything else")).to.throw(Error);
});