这是我的代码:
var startTime = new Date(startDateTime).toLocaleTimeString("en-US", options);
我需要在单元测试中获取
startTime
。从 Java 的单元测试角度出发,我的解决方法是如何模拟新的日期构造函数?以及如何模拟 toLocaleTimeString 函数调用?但是,我不确定在 JavaScript 中是否要这样解决问题。我已经尝试了一些方法,包括使用 sinon 的 useFakeTimers,但我认为这与时间的流逝无关。
这是我从各种搜索中得到的测试代码,但完全不知道 sinon 的工作原理:
var whatever = sinon.spy(global, 'Date');
sinon.stub(whatever, 'toLocaleTimeString').yields('7:00 PM');
然而,这会出现“尝试将未定义的属性toLocaleTimeString包装为函数”的错误。
请帮助我理解我应该如何桩接这种功能以及如何实现此操作的逻辑。