我正在为一个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 "而不是日期。我不知道是什么问题。
我试着重现了你的案例,你应该可以做到这样的事情 这个 使用 spyOn
和 mockReturnValue
像这样。jest.spyOn(Date, "now").mockReturnValue(new Date(1587893830000).getTime());
此外,你的格式输入 'MMM Do YY'
不符合您的预期输出 'May April 26th 2020'
应是 'Apr 26th 20'
.