我在这里做类似这个问题的事情,它允许我在我的测试中提供我自己的Date
构造函数实现
spyOn(window, 'Date').andCallFake(function() {
return SOME_DATE;
});
我现在遇到了一个问题,我想升级 moment.js 并且他们在我用我的模拟 Date 对象调用的代码中使用了额外的 Date 函数。这些功能不存在:
Date.UTC() // doesn't exist in mocked date when accessed in moment.js
所以我认为我需要做的是以某种方式只模拟构造函数Date
并让其他函数通过它。
我尝试了各种形式的.andCallThrough
以及将它需要的函数分配给 spy 对象都无济于事(例如,spy.UTC = OldDate.UTC
)。有任何想法吗?