我是Jasmine的新手,正在寻找一个测试非常简单的change
事件处理程序的示例。
我有以下代码:
$(document).ready(function() {
$("#myId").change(function() {
my.functionOne();
});
});
my = {
functionOne : function() {
// do stuff
}
};
如何在执行事件处理程序时测试,调用functionOne?
感谢。
答案 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设置测试的,但这两个库也可以派上用场:
在每次测试前设置jQuery和HTML灯具:https://github.com/searls/jasmine-fixture