我现在正在使用这个库,试图让Handlebars在我的流星应用程序的服务器端工作(https://github.com/EventedMind/iron-router#using-a布局-带字段)。
我已经开始工作了,但我现在想修复我的单元测试。我对Jasmine有点初学者,所以希望这个问题不要太愚蠢。如果我完全走错了轨道,请告诉我。
目前,我正试图在茉莉花单元测试中模拟这一行。
Handlebars.templates['ResponseToSubscribers']({dateSent: new Date()})
我知道如何模拟方法,但不知道如何模拟数组值。
我试过这样做。
spyOn(Handlebars, 'templates').andReturn({"ResponseToSubscribers": (obj) -> "html"})
但它给了我这个错误。
templates() method does not exist
我怎样才能嘲笑[]并让它得到回报?
对添加间谍的方式进行小的更正将解决问题。必须对对象和该对象上的函数/值进行间谍注册。将注册修改为spyOn(Handlebars.templates, 'ResponseToSubscribers')
将解决您的问题。
样本代码:
describe("Test Array", function() {
it("checks the actual value", function() {
var t1 = Handlebars.templates['ResponseToSubscribers']('dummy');
expect(t1).toEqual(1);
});
it("checks handle bar value", function() {
spyOn(Handlebars.templates, 'ResponseToSubscribers').and.returnValue(2);
var t = Handlebars.templates['ResponseToSubscribers']('dummy');
expect(t).toEqual(2);
});
});