我正在使用 Jest 为 Node.js 后端开发一些测试,我需要检查来自第三方的一些值。在某些情况下,这些值可以是
boolean
或 null
。
现在我正在检查适合该情况的变量:
expect(`${variable}`).toMatch(/[null|true|false]/);
有没有更好的方法来使用 Jest 内置函数来检查它们?
那又如何
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();
这是使用匹配器表达条件的另一种方法(可以与扩展方法结合使用,如@bugs的答案中所建议的):
expect([expect.any(Boolean), null]).toContainEqual(variable);