茉莉花测试javascript 内部函数
jasmine test javascript inner function
这是我的 javascript 代码
function organization() {
var self = this;
function activate() {
// statements
}
}
我知道方法 activate() 的范围仍然在方法 organization() 内,这就是我面临的挑战。
我的要求是在 Jasmine 中编写一个测试以确保调用了方法 activate。
it('activate method defined?', function() {
expect(activate()).toBeDefined();
});
但是此测试失败并显示消息
TypeError: activate is not a function
使上述测试成功的任何输入都将非常有帮助。
以这种方式定义脚本。
function organization() {
var self = this;
self.activate = function() {
// statements
}}
并像这样访问函数
var obj = new organization();
obj.activate();
您不需要检查实际调用或定义的私有函数 'activate'。您需要检查我所理解的 public 函数 'organization' 是否被调用或定义,如果激活则设置一些 public 属性等。例如:
function organization() {
var vm = this;
activate();
function activate() {
vm.activated = true;
}
}
it('should activate organization', function() {
organization();
expect(vm.activated).toBe(true);
});
或者如果你需要,你可以将函数激活为 public:
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);
});
这是我的 javascript 代码
function organization() {
var self = this;
function activate() {
// statements
}
}
我知道方法 activate() 的范围仍然在方法 organization() 内,这就是我面临的挑战。
我的要求是在 Jasmine 中编写一个测试以确保调用了方法 activate。
it('activate method defined?', function() {
expect(activate()).toBeDefined();
});
但是此测试失败并显示消息
TypeError: activate is not a function
使上述测试成功的任何输入都将非常有帮助。
以这种方式定义脚本。
function organization() {
var self = this;
self.activate = function() {
// statements
}}
并像这样访问函数
var obj = new organization();
obj.activate();
您不需要检查实际调用或定义的私有函数 'activate'。您需要检查我所理解的 public 函数 'organization' 是否被调用或定义,如果激活则设置一些 public 属性等。例如:
function organization() {
var vm = this;
activate();
function activate() {
vm.activated = true;
}
}
it('should activate organization', function() {
organization();
expect(vm.activated).toBe(true);
});
或者如果你需要,你可以将函数激活为 public:
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);
});