首页 > 解决方案 > 如何使用 jest 将带有 Date 的 expect.toMatchObject() 作为预期属性值之一传递?

问题描述

我有一个快速 API 端点,它返回一个对象,并且在该对象上有一个属性(在我们下面的示例中为属性 3),它的值是日期。

例如

  res.body = {
       "property1": "value1"
       "property2": "value2"
       "property3": new Date()
    }

我正在使用 jest 和 supertest 对此端点进行测试。

由于 date.now() !== date.now(),我将如何通过

expect(res.body).toMatchObject(<expectedObject>)

标签: datetimetesting

解决方案


您只能使用expect.objectContainingwhich 匹配子集属性。上面的例子可以写成如下:

expect(res.body).toMatchObject(expect.objectContaining({
  "property1": "value1"
  "property2": "value2"
}))

推荐阅读