不能在Jest中嘲讽数据时刻。

问题描述 投票:0回答:1

我正在为一个Vue方法编写测试,该方法使用moment来格式化并返回今天的日期,我试图在我的测试中模拟moment,以便在我运行测试时 "今天的日期 "不会总是变化。

我的方法是

return `Today is ${moment().format('MMM Do YY')}`;

我读到,因为Moment无论如何都依赖于Date.now(),你可以直接模拟它。

在我的测试中,我有。

test('prints out daily greeting', () => {
    Date.now = jest.fn(() => 1587893830000);

    expect(GreetingPage.methods.greetingMessage.toBe('Today is May April 26th 2020');
  });

然而,当我运行测试时,它总是收到 "undefined "而不是日期。我不知道是什么问题。

mocking jestjs momentjs
1个回答
1
投票

我试着重现了你的案例,你应该可以做到这样的事情 这个 使用 spyOnmockReturnValue 像这样。jest.spyOn(Date, "now").mockReturnValue(new Date(1587893830000).getTime());

此外,你的格式输入 'MMM Do YY' 不符合您的预期输出 'May April 26th 2020' 应是 'Apr 26th 20'.

© www.soinside.com 2019 - 2024. All rights reserved.