我有一个JavaScript“类”,如下所示:
(function() {
'use strict';
function Calculator() {
this.currentValue = 0;
}
Calculator.prototype.add = true;
return Calculator;
}());
现在我试图用Jasmine测试它 - CalculatorSpec.js
看起来像这样:
(function() {
'use strict';
var calculator;
beforeEach(function() {
calculator = new Calculator();
});
describe('Calculator', function() {
it('should contain a function called "add"', function() {
expect(calculator.add).toBeTruthy();
});
});
})();
我应该如何访问Jasmine IIFE中的Calculator
?
文件在specrunner中以正确的顺序包含在内,所以我确定这是一个范围问题。
我已经尝试将其作为参数传递给IIFE,但问题是计算器在全球范围内不可用。我想是。
答案 0 :(得分:4)
你必须让Calculator
全局可访问才能测试它。 (并且......你将如何在其他代码块中使用它?)通过将IIFE分配给变量来实现此目的的最简单方法是:
var Calculator = (function() {
'use strict';
function Calculator() {
this.currentValue = 0;
}
Calculator.prototype.add = true;
return Calculator;
}());