2011-11-06 68 views
0

我已经开始使用谷歌js测试,并成为卡住试图单元测试下面的jquery选择器 - 实际上我想检查附加函数已被调用,但需要一个选择器。如何嘲笑jQuery的选择器在谷歌JS测试

'JQuery'是我注入函数的jQuery($)对象。

JQuery('#' + containerElementId).append('some html'); 

我已经创建了我作为jQuery的 this.jQuery =一个模拟使用对象{ 追加:createMockFunction() };

我想测试追加被称为:

expectCall(this.jQuery(_).append)(); 
-OR- 
expectCall(this.jQuery('#fakeselector').append)(); 

这给我的错误: 类型错误:对象#的特性“jQuery的”不是一个函数 失败

我该怎么需要做的this.jQuery对象文字来绕过选择器?

回答

0

发现,你可以创建这样一个模拟:

var jqueryEmptyStub = { 
    append: createMockFunction() 
}; 

var jQueryMock = function (rootSelector) { 
    return jqueryEmptyStub; 
}; 

var myObject = anObject(jQueryMock); 
expectCall(jqueryEmptyStub.append)(); 
myObject.doSomethingThatCallsAppend();