js单元测试,使用断言捕获抛出的异常


关键字

mocha, chai, js, node.js

失败情况

如果直接使用expect(abc.function(param1, param2)).to.throw() 是无法测试抛出的异常的,因为传入的是function() 返回的值。

怎么解决

想要用 expect 断言测试抛出的异常,必须让expect自己调用这个函数,方法是bind()

上面的断言应该改成 expect(abc.function.bind(abc, param1, param2)).to.throw()

参考

https://stackoverflow.com/questions/21587122/mocha-chai-expect-to-throw-not-catching-thrown-errors