jquery里面的单元测试功能

时间:2015-01-08 19:04:27

标签: javascript jquery unit-testing

除了它的基础知识之外,我对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

1 个答案:

答案 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没有任何关系。