除了它的基础知识之外,我对jquery不太熟悉,所以在搜索时我可能只是缺少一些术语,但我有一个类似下面的功能,我无法进行单元测试。
$(function () {
function GetUsers() {
//does cool stuff to get and return users
}
}
我尝过这样的话:
it('should get users', function() {
GetUsers();
});
甚至尝试命名jquery函数,如:
$(function Actions() {
function GetUsers() {
//does cool stuff to get and return users
}
}
并在我的单元测试中调用Actions.GetUsers(),但仍无效。
我得到的错误是:
ReferenceError:未定义GetUsers
答案 0 :(得分:2)
您的函数在匿名函数内声明。它不适用于您的单元测试。您可以在匿名函数之外声明它,也可以在函数内部设置一些全局字段。
选项1
var GetUsers = function(){}
$(function(){
... // use GetUsers somehow
});
// You can now test GetUsers
选项2
var someTestableContext = {};
$(function(){
someTestableContext.GetUsers = function(){};
});
// You can now test someTestableContext.GetUsers
注意强>
您可能希望在javascript中查看范围和模块化模式。你的问题与jQuery没有任何关系。