为什么此测试不通过?
beforeEach(function(){
loadFixtures('addvehicle.html');
});
it ("should trigger change event on #selectLanguage", function(){
spyOnEvent('#selectLanguage', 'change');
$('#selectLanguage').trigger('change');
expect('change').toHaveBeenTriggeredOn('#selectLanguage');
});
我的装置文件如下所示:
<div id="selectTypeWrapper"></div>
<select id="selectLanguage"></select>
我收到此错误:
错误:预期事件[对象对象]已触发
#选择语言
我是否必须设置变更侦听器? (这将如何工作?)
最佳答案
我不知道为什么您的代码不起作用,但是您可以尝试以下方法:
var changeSpy;
beforeEach(function(){
loadFixtures('addvehicle.html');
changeSpy = jasmine.createSpy('handleChange() spy');
$('#selectLanguage').change(changeSpy);
});
it ("should trigger change event on #selectLanguage", function(){
$('#selectLanguage').change();
expect(changeSpy).toBeDefined();
expect(changeSpy).toHaveBeenCalled();
});
它将间接测试事件。
关于javascript - 如何测试触发事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30348667/