问题
我有以下要测试的 javascript 文件:
function myLocalHouse() {
this.init = function() {
$.post(//Ajax call using jQuery);
};
this.buyHouse(money, date) {
//code I want to test with mocha
};
this.init();
};
如您所见,该init
方法使用 jQuery,当我mocha
在控制台中执行测试它时,由于找不到$
对象而失败。
所以我的解决方案是覆盖和伪造该init
方法。问题是我这样做的尝试失败了。好难过。
我试过的
这是我尝试测试的测试,也是我尝试myLocalHouse
覆盖 init 方法以使用空函数的三个尝试。
var myLocalHouse = require('./myLocalHouse.js').myLocalHouse;
suite('houses suite', function() {
test('test that buy House works correctly', function() {
//First attemp at overriding init method: FAILED
myLocalHouse.prototype.init = function() {};
//Second attemp at overriding init method: FAILED
myLocalHouse.__proto__.init = function() {};
var myLocalHouseInstance = new myLocalHouse();
//Third attemp at overriding init method: FAILED
myLocalHouseInstance.prototype.init = function() {};
var something = myLocalHouseInstance.buyHouse(100, '17/08/2013');
});
});
我只是...我不知道如何覆盖该init
方法。
我做错了什么?还有另一种方法可以做同样的事情吗?