我正在使用Jest编写一些测试,针对使用
这个测试大致如下:
问题在于测试失败,因为
pg
库从Postgres返回结果的API。我发布了一些数据(通过faker
生成的template1
值集),然后测试返回的内容是否相同,允许有一个id
值和modified
字段。 template1
数据包括一个approved
属性(SQL定义:approved timestamp with time zone
),生成方式如下:{
approved: faker.date.past(),
description: faker.lorem.paragraph(),
groups: faker.lorem.paragraph(),
}
这个测试大致如下:
expect(response.body.rows).toStrictEqual([
{
...template1,
id: 1,
modified: null,
},
])
问题在于测试失败,因为
approved
的返回值似乎是一个字符串:expect(received).toStrictEqual(expected) // deep equality
- Expected
+ Received
@@ -1,8 +1,8 @@
Array [
Object {
- "approved": 2019-12-19T03:48:20.613Z,
+ "approved": "2019-12-19T03:48:20.613Z",
"approved_by": "Percy_Hills@yahoo.com",
在比较之前,我尝试将template1.approved
的值转换为日期和字符串。但两种方法都失败了。我做错了什么,该如何解决这个问题?
expect(response.body.rows).toStrictEqual([ { ...template1, id: 1, modified: null, approved: new Date(template1.approved).toJSON(), }, ])
! - Dycey