开玩笑抱怨错误......我告诉开玩笑期待
Posted
技术标签:
【中文标题】开玩笑抱怨错误......我告诉开玩笑期待【英文标题】:Jest complains of error...that I told jest to expect 【发布时间】:2020-04-26 05:47:20 【问题描述】:我正在编写一个预期会抛出错误的笑话测试:
it("safeGithubPush()", () =>
const err = new Error('job not valid')
expect(productionDeployJob.safeGithubProdPush(unsafeJob)).toThrow(err);
);
错误被抛出。但是,它并没有开玩笑说通过了这个测试,而是说它失败了,并指出了这个错误是在我的程序中创建的地方
FAIL tests/unit/productionDeploy.test.js
● ProductionDeploy Test Class › safeGithubPush()
job not valid
8 | const uploadToS3Timeout = 20;
9 |
> 10 | const invalidJobDef = new Error("job not valid");
当我告诉它期待同样的错误时,它为什么抱怨抛出了错误?
【问题讨论】:
【参考方案1】:您正在就地调用safeGithubProdPush
方法。
为了让 Jest 捕获方法抛出的错误,您应该给 expect
一个包装调用的函数:
expect(() => productionDeployJob.safeGithubProdPush(unsafeJob)).toThrow(err);
如文档中所述:
注意:必须将代码包装在一个函数中,否则错误不会被捕获,断言会失败。
https://jestjs.io/docs/en/expect#tothrowerror
【讨论】:
以上是关于开玩笑抱怨错误......我告诉开玩笑期待的主要内容,如果未能解决你的问题,请参考以下文章