【问题标题】: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");

当我告诉它期待同样的错误时,它为什么抱怨抛出了错误?

【问题讨论】:

    标签: node.js testing jestjs


    【解决方案1】:

    您正在就地调用safeGithubProdPush 方法。

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

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

    如文档中所述:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 2022-08-07
      • 2021-06-20
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多