【发布时间】:2015-08-16 14:59:28
【问题描述】:
我在 angulajs 中对我的客户端代码进行单元测试,我理解这段代码的含义
var newdate = new Date(2013,6,29);
spyOn(Date.prototype, 'getTime').and.callFake(function() {
return newdate;
});
我们模拟了 Date 对象的 getTime() 方法。但我想模拟新的 Date() 。例如我要测试的代码包含这一行
payload.created_at = new Date();
我无权访问 payload.created_at。所以我想告诉 jasmine,每当你看到 new Date() 时,用我给你的给定日期替换它。所以我在想类似的东西,但它不起作用。
spyOn(Date.prototype, 'new Date').and.callFake(function() {
return newdate;
});
但是 new Date 不是 Date 的方法。请问有人可以帮我解决这个问题吗?谢谢
【问题讨论】:
-
我试过了,没用。它给了我一个未定义的错误
-
什么未定义的错误?
-
@PSL ,不用担心,该链接帮助我找到了答案。我发布了我的答案。谢谢
-
好的。这只是茉莉花版本的区别(你应该已经知道了,因为在你正在做的问题
and.callFake)。
标签: javascript angularjs unit-testing jasmine karma-jasmine