jquery - 带有主干js的 Jasmine 测试用例

标签 jquery backbone.js jasmine

我的一位开发人员已经使用backbone在js文件中编写了代码。

define([],function(){
    var sampleFunction = Backbone.view.extend({

       initialize:function(){
          $( 'body' ).on( 'keypress', '#listItemName', function ( ev ) {
                if ( ev.keyCode === 13 ) {
                    $( '#createList' ).click();
                    return false;
                }
            } );
       },
       events:{               
           "click #createList": "handleCreateNewList",
       },
   }),

}

我必须为此按键功能编写一个测试用例......

我已经写了我的规范

describe("",function(){
    beforeEach(function({

    });
    afterEach(function(){


   });

  it("Binding create list event to enter button",function(){            
    spyOn( _this.leftNavView, "handleCreateNewList");
    _this.leftNavView.delegateEvents();
    var e = jQuery.Event("Keypress");   
    e.keyCode = 13;         
    if(e.keyCode == 13){
        $("#createList").trigger('click');          
    }
    expect( _this.leftNavView.handleCreateNewList ).toHaveBeenCalled();
 });


}),

我的规范仅调用 createlist 的单击事件,但我想调用 #listItemName 的按键事件以及在创建列表中的单击事件。我只是在这里感到困惑,尝试了很多,但没有找到任何结果。

删除了一些代码..

最佳答案

你尝试过这样的事情吗:

    var e = $.Event('keypress');
    e.keyCode = 13;
    $('#listItemName').trigger(e);

关于jquery - 带有主干js的 Jasmine 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26460280/

相关文章:

node.js - 未找到元素时 Protractor "It"规范失败

javascript - CSS 样式因媒体查询而被划掉?

javascript - 将参数传递给 JavaScript 或 jQuery 函数的正确方法是什么?

javascript - 无法在 Backbone 模型上调用自定义方法

javascript - Jasmine 模拟失败,错误为 `apply`,但正常函数调用正常

javascript - 带有 Protractor/WebDriverJS 元素的 Jasmine 自定义匹配器

php - 登录表单 > 叠加层因表单错误而关闭

javascript - jquery ajax同步调用beforeSend

events - 如何在 View 中使用 Backbone.EventBinder

javascript - 使用特定的 ajax 调用设置集合获取