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

时间:2020-01-08 16:30:29

标签: node.js testing jestjs

我正在编写一个开玩笑的测试,期望会引发错误:

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 个答案:

答案 0 :(得分:2)

您正在就地调用safeGithubProdPush方法。

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

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

与文档中一样:

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

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