是一个函数"/>
Jest测试应声明一个异常,但接收到的值必须是一个函数
我是js开发的新手,所以我试图通过某种TDD方法来训练我的js逻辑,但是当我有了该代码时,我的Expect(function)toThrow(error)会返回此错误
the received value must be a function
按照我的代码:
const bin2Dec = (bin) => {
if(!typeof bin === 'string'){
throw new Error('Not parsable');
}
return true;
}
module.exports = bin2Dec;
在我的测试套件下面:
const bin2dec = require('../index')
it("Should check if bin is string", () => {
expect(bin2dec("100")).toBe(true);
})
it("Should expect error from bin", () => {
expect(bin2dec(100)).toThrow('Not Parsable');
})
回答如下:尝试更新您的断言以将对bin2dec
的调用包装到函数中,如文档中所示:https://jestjs.io/docs/en/expect#tothrowerror
例如:
expect(() => bin2dec(100)).toThrow('Not Parsable');
当前,文档指出:
注意:您必须将代码包装在一个函数中,否则错误将不会被捕获并且断言将失败。
更多推荐
Jest测试应声明一个异常,但接收到的值必须是一个函数
发布评论