【问题标题】:Jest's matcher error: received value must be a functionJest 的匹配器错误:接收到的值必须是函数
【发布时间】:2020-09-08 19:24:12
【问题描述】:

我在字体端工作,并测试我的库,我收到一个我预期的错误,但我无法做出断言。我有下一个代码:

it('If the username is not entered, I get an error', () => {
    try {
      new SDK('test', {
        password: 'aaaabbbbcccc',
        key: 'ddddeeefff',
      });
    } catch (error) {
      expect(error).toThrow(
        `Error: The 'username' property has not been entered`
      );
    }
  });

如您所见,对于我的库的身份验证,我需要:用户名、密码和密钥。这是我得到的错误:

谢谢!

【问题讨论】:

    标签: javascript jestjs throw matcher


    【解决方案1】:

    我发现了我的问题。 “期望”必须捕获异常,然后使用适当的匹配器(没有 try/catch 块)

    it('If the username is not entered, I get an error', () => {
      expect(() => {
        new SDK('test', {
          password: 'aaaabbbbcccc',
          key: 'ddddeeefff',
        });
      }).toThrowError(`The 'username' property has not been entered`);
    });
    

    【讨论】:

    • 我也有类似的经历。。我在哪里使用 await expect(S3Client.getObject(s3Param.bucket, s3Param.key)).rejects.toThrow("您请求的资源不存在" );
    猜你喜欢
    • 2021-09-02
    • 2020-12-26
    • 1970-01-01
    • 2021-06-05
    • 2022-12-09
    • 2018-01-21
    • 2022-01-22
    • 2014-11-07
    • 1970-01-01
    相关资源
    最近更新 更多