我有一些Javascript代码,我想让它可重用和可测试,所以我试图用它来创建一个库。我已经以库的形式制作了它,但我无法使用Jasmine测试构造函数。
我的库代码看起来像这样:
window.menu = (function(){
function Menu(){
this.addItem('sample');
}
Menu.prototype.addItem(string){
console.log(string);
}
var menu = function(){
return new Menu();
}
return menu;
}());
现在使用Jasmine,我不打算测试测试而不是addItem函数的内容,但构造函数,我只是想知道调用addItem函数。
There is a similar question here,但由于某些原因不适合我。如果我写这个测试:
describe("Menu", function() {
it("Test constructor", function() {
spyOn(Menu.prototype,'addItem');
var newMenu = new menu();
}
});
我总是得到:
ReferenceError: Can't find variable: Menu in file:///home/whatever/library-test/spec/MenuSpec.js
我真的不知道为什么会发生这种情况,测试代码是错误的还是我选择了一种糟糕的方法来创建我的可测试库代码?