开玩笑抱怨错误.我告诉开玩笑期待



我正在编写一个期望抛出错误的开玩笑测试:

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");

为什么当我告诉它预期相同的错误时,它会抱怨错误被抛出?

您正在就地调用safeGithubProdPush方法。

为了让 Jest 捕获方法抛出的错误,你应该给expect一个包装调用的函数:

expect(() => productionDeployJob.safeGithubProdPush(unsafeJob)).toThrow(err);

如文档中所示:

注意:您必须将代码包装在函数中,否则不会捕获错误并且断言将失败。

https://jestjs.io/docs/en/expect#tothrowerror

最新更新