Javascript Jasmine的JQuery测试失败
我是JQuery新手,必须用Jasmine测试此函数: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
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视图或页面。其他人可能会提出建议。