【问题标题】:Expect a variable to be null or boolean期望变量为 null 或布尔值
【发布时间】:2018-11-10 07:36:19
【问题描述】:

我正在使用 Jest 为 Node.js 后端开发一些测试,我需要检查一些来自第三方的值。在某些情况下,这些值可以是 booleannull

现在我正在检查适合这种情况的变量:

expect(`${variable}`).toMatch(/[null|true|false]/);

有没有更好的方法来使用 Jest 内置函数检查它们?

【问题讨论】:

  • 您当前的解决方案还将匹配字符串“null”、“true”和“false”,这可能不是首选。
  • @FINDarkside 这就是为什么我要使用 Jest 方法寻找更好的解决方案。

标签: javascript testing ecmascript-6 jestjs


【解决方案1】:

怎么样

expect(variable === null || typeof variable === 'boolean').toBeTruthy();

您可以使用expect.extend 将其添加到内置匹配器中:

expect.extend({
    toBeBooleanOrNull(received) {
        return received === null || typeof received === 'boolean' ? {
            message: () => `expected ${received} to be boolean or null`,
            pass: true
        } : {
            message: () => `expected ${received} to be boolean or null`,
            pass: false
        };
    }
});

并像这样使用它:

expect(variable).toBeBooleanOrNull();

【讨论】:

  • 也可以将此代码与expect.extend 一起使用,使其成为内置toBeBooleanOrNull
  • 我喜欢你们俩的综合回答。我留给你更新它或让@CodingIntrigue 用扩展方法来回答它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-14
  • 2015-03-12
  • 2013-03-04
  • 2014-02-27
  • 1970-01-01
  • 2012-07-06
  • 2018-11-06
相关资源
最近更新 更多