【发布时间】:2020-01-20 11:39:14
【问题描述】:
我有一个使用本机 Date 对象的现有打字稿代码库。我想向它添加一个测试用例,但是在使用 deep.equals 比较我的对象时,我得到了一个不匹配的结果:
AssertionError: expected { date: Mon, 20 Jan 2020 11:05:03 GMT } to deeply equal { date: '2020-01-20T11:05:03.638Z' }
+ expected - actual
{
- "date": [Date: 2020-01-20T11:05:03.638Z]
+ "date": "2020-01-20T11:05:03.638Z"
}
这是我的代码:
it.only("compare the date", async () => {
const date = new Date(Date.UTC(2020, 0, 20, 11, 5, 3, 638));
const actual = {
date,
};
const expected = JSON.parse(JSON.stringify(actual));
expect(actual).to.deep.eq(expected);
});
这个例子是人为设计的,但在我的代码库中,我基本上也是从 JSON 文件加载预期的对象。
【问题讨论】:
-
您将
Date对象与字符串进行比较。 -
@jonrsharpe 我知道。因为我已经弄清楚了,所以我已经写了问题和答案。
-
但是您为什么认为这需要问答?
[Date: ...]与"..."不同的输出是否不清楚? -
@jonrsharpe 为了记录我的解决方案并可能为其他人节省几分钟时间。没有比这更基本的了。您认为进行此问答的危害在哪里?
-
我想我看不到任何人都可以比阅读测试输出更快地搜索和找到它。
标签: javascript json typescript date chai