【问题标题】:jasmine test cases with backbone js带有主干js的茉莉花测试用例
【发布时间】:2014-10-20 07:16:23
【问题描述】:

我的一个开发人员使用主干将代码写在这样的 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 的 on keypress 事件并在该创建列表单击事件内调用。我只是在这里感到困惑,尝试了很多但我没有找到任何结果。

删除了一些代码..

【问题讨论】:

  • 你能创建一个小提琴来演示这个问题吗?
  • 你用的是哪个版本的茉莉花..?

标签: jquery backbone.js jasmine


【解决方案1】:

你有没有试过,像这样的:

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

【讨论】:

  • 是的我试过这个方法但是如何调用内部函数
  • 不明白?哪个内部函数?
  • 在 listitemname 上触发 enter 事件后,我必须在 creatlist 上触发另一个 click 事件,我该如何实现这一点
  • 在上面的代码中添加$("#createList").trigger('click'); ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多