1

目标是模拟 javascript Date 对象,以便在我运行测试和评估快照时,快照并不总是失败。

我正在尝试为new Date在 Vue 2.6.8 应用程序(这是一个 Typescript 项目)中利用构造函数的函数编写一个 Jest 测试。

我已经绑定了一个调用maxDate组件的变量。它使用 getter 根据需要计算值。目标是限制日期选择器的可选范围。代码如下所示:

Vue模板:

<template>
  <date-picker :max-date="maxDate" />
</template>

Vue类方法:

private get maxDate() {
  return new Date();
}

开玩笑测试(匹配快照):

describe('Snapshots', () => {
  test('snapshot 1', () => {
    expect(component.vm.$el).toMatchSnapshot();
  });
});

我的问题是:我如何防止我的快照失败,因为每次运行测试时日期都会改变?

例如,当我第一次运行测试并生成快照时,我在快照本身中得到了类似的东西。

首次运行(生成快照):

...
maxdate="Wed Oct 30 2019 12:27:08 GMT-0700 (Pacific Daylight Time)"
...

下次我运行测试时 - 确切地说是一分钟后 - 快照将失败,因为它将期待上一个日期,但现在正在获取不同的数据。

第二次运行(快照失败):

...
maxdate="Wed Oct 30 2019 12:28:08 GMT-0700 (Pacific Daylight Time)"
...
4

0 回答 0