为什么此测试不通过?

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/

10-12 01:08