首页 > 解决方案 > 在 .toMatchObject 中使用 Jest 匹配器

问题描述

这个问题是在 Jest .toMatchObject 中包含 toBeCloseTo的一般情况。

如何在匹配器中使用任何Jest 扩展匹配.toMatchObject(object)器?

例如,测试一个对象是否有多个字段,包括一个foo> 零的字段:

expect({ a: 'b', c: 'd', foo: 3 }).toMatchObject({
  a: 'b',
  c: 'd',
  foo: expect.toBeGreaterThan(0),  // expect.toBeGreaterThan is not a function
});

我知道我可以写expect(theObject.foo).toBeGreaterThan(0),但是是否可以不脱离通话中的测试.foo逻辑.toMatchObject

标签: jestjs

解决方案


我知道,很晚。结合toBeOneOftoBePositive为我工作:

expect({ a: 'b', c: 'd', foo: 3 }).toMatchObject({
  a: 'b',
  c: 'd',
  foo: expect.toBeOneOf([0, expect.toBePositive()]),
});

推荐阅读