里面的单元测试功能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.

无关