里面的单元测试功能jquery
Unit test function inside jquery
我不太熟悉 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 is not defined
您的函数是在匿名函数内部声明的。它在您的单元测试上下文中不可用。您可以在匿名函数外部声明它,也可以在其中为函数设置一些全局字段。
选项 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.
无关
我不太熟悉 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 is not defined
您的函数是在匿名函数内部声明的。它在您的单元测试上下文中不可用。您可以在匿名函数外部声明它,也可以在其中为函数设置一些全局字段。
选项 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.
无关