1

我在这里做类似这个问题的事情,它允许我在我的测试中提供我自己的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)。有任何想法吗?

4

0 回答 0