【发布时间】:2021-09-21 11:53:59
【问题描述】:
这感觉远没有我做的那么困难。这里有一个小(高度简化)的函数作为例子:
dateCalculator.js
const today = new Date();
const deliveryDate = new Date();
deliveryDate.setDate(today.getDate() + 3);
export const dateCalculator = () => {
return `${deliveryDate.toLocaleString('en-GB', { weekday: 'long' })}`;
};
所以这个函数获取今天的日期,加上三天,然后返回星期几。 Obvs,我要测试一下:
dateCalculator.spec.js
import { dateCalculator } from './dateCalculator';
describe('dateCalculator', () => {
it('should return the correct day of the week', () => {
expect(dateCalculator()).toBe('Thursday');
});
});
此测试通过,但只有在星期一运行时才会通过。
如何强制变量 today 成为我可以从测试中控制的特定日期?我不知道如何模拟这个单一变量。
【问题讨论】:
-
嗨,你试过这个吗? so answer
-
@sakisTsalk 我有,但不幸的是,我工作的组织是 25.5.4,这还不够新,无法支持... :(
-
好吧,我仍然建议在该线程上查看其他答案。
-
我实际上已经完成了 - 这是我在写问题之前发现的线程之一。虽然当我在测试中单独使用接受的答案时确实会产生影响,但它不会影响我正在寻求帮助的
deliveryDate.js文件返回的内容。如何强制today变量成为我在测试文件中控制的日期?
标签: javascript jestjs