这是我的javascript代码
function organization() {
var self = this;
function activate() {
// statements
}
}
我知道方法activate()的范围仍然在方法组织()中,这是我面临的挑战。
我的要求是在Jasmine中编写一个测试,以确保调用方法激活。
it('activate method defined?', function() {
expect(activate()).toBeDefined();
});
但是此测试失败并显示消息
TypeError:activate不是函数
使上述测试成功的任何输入都将非常有用。
答案 0 :(得分:0)
以这种方式定义脚本。
function organization() {
var self = this;
self.activate = function() {
// statements
}}
并像这样访问功能
var obj = new organization();
obj.activate();
答案 1 :(得分:0)
您无需检查实际调用或定义的私有函数“activate”。您需要检查我所理解的公共功能“组织”是否被调用或定义,如果激活,则设置一些公共属性等。例如:
function organization() {
var vm = this;
activate();
function activate() {
vm.activated = true;
}
}
it('should activate organization', function() {
organization();
expect(vm.activated).toBe(true);
});
或者,如果您需要,您可以将功能激活为公共:
function organization() {
var vm = this;
vm.isActivated = false;
vm.activate = activate;
function activate() {
vm.isActivated = true;
}
}
it('should activate organization', function() {
vm.activate();
expect(vm.isActivated).toBe(true);
});