Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jasmine的JQuery测试失败_Javascript_Jquery_Unit Testing_Testing_Jasmine - Fatal编程技术网

Javascript Jasmine的JQuery测试失败

Javascript Jasmine的JQuery测试失败,javascript,jquery,unit-testing,testing,jasmine,Javascript,Jquery,Unit Testing,Testing,Jasmine,我是JQuery新手,必须用Jasmine测试此函数: showUserDeleted: function (event) { $('#loginError').html((new ErrorView({code: "login"})).render().$el); } 我将此函数分为两部分: showFailedLogin: function (event) { var value = (new ErrorView({code: "login"})).render().$el

我是JQuery新手,必须用Jasmine测试此函数:

showUserDeleted: function (event) {
    $('#loginError').html((new ErrorView({code: "login"})).render().$el);
}
我将此函数分为两部分:

showFailedLogin: function (event) {
    var value = (new ErrorView({code: "login"})).render().$el;
    showFailedLoginHelper(event, value);
},

showFailedLoginHelper: function (event, value){
    $('#loginError').html(value);
},
现在我想测试helper函数

//...
var view;
var $;

beforeAll(function(done){
    require(['../../../public/js/app/views/LoginView', 'jquery'],
        function(LoginView, Jquery) {
            view = new LoginView();
            $ = view.getJQuery();
            done();
        }
    );
});

describe("showFailedLogin", function(){
    it ("should add something to loginError", function(){
        var input = "asdf";
        view.showFailedLoginHelper(undefined, input);
        expect( $('#loginError').html()).toBe(input);
    });
});
//...
当我运行它时,它会说:

Expected undefined to be 'asdf'.

我做错了什么?

console.log()您可以选择selector.length,查看它是否为1。如果没有,您的元素就不会在页面上生成。我觉得奇怪的是,您向登录助手提供了一个事件,而没有使用它,并且在您的测试中,您以“未定义”的形式提供它。这个代码还在进行中吗?为什么需要此参数?selector.length为0。我怎样才能解决这个问题?我还是不太明白requirejs是怎么工作的。。。当我创建
LoginView
的实例时,是否应该生成此代码?我没有为此项目编写代码,它仍在进行中。这就是为什么我没有删除这个参数。除了一些修改(不是站点)之外,我没有使用require js的经验。我个人的jasmine体验是基于我自己在页面上生成所需的标签,在容器中,为逻辑工作。不拉入实际的html视图或页面。其他人可能会提出建议。