简单的Jasmine示例,用于更改事件

时间:2013-12-13 00:08:58

标签: javascript jquery event-handling jasmine

我是Jasmine的新手,正在寻找一个测试非常简单的change事件处理程序的示例。

我有以下代码:

$(document).ready(function() {
    $("#myId").change(function() {
         my.functionOne();
    });
});

my = {
    functionOne : function() {
        // do stuff
    }
};

如何在执行事件处理程序时测试,调用functionOne?

感谢。

1 个答案:

答案 0 :(得分:2)

查看关于间谍的Jasmine文档:http://pivotal.github.io/jasmine/#section-Spies

测试事件处理程序的最简单方法是这样的:

describe('#myId behaviour', function(){
    //.. Your other setup here.

    it('calls functionOne on #myId change event', function(){
        spyOn(my, 'functionOne');

        // Force a change event to fire.
        $("#myId").trigger('change');

        expect(my.functionOne).toHaveBeenCalled();
    });

    // Other tests...
}

我不知道您是如何使用HTML和jQuery设置测试的,但这两个库也可以派上用场: