Ember - triggerEvent帮助器

时间:2015-12-30 18:13:23

标签: ember.js ember-qunit ember-testing

我无法触发"更改"在余烬验收测试中的事件。

我有一个具有观察到的值的滑雪者'属性。在更改时,滑块发送一个api请求,该请求根据滑块值使用params更新URL。

我可以使用jQuery更改测试中滑块的值,jQuery成功更新了UI中的滑块......

$("#slider").val(3.0).change();

...但是更改事件没有被触发,所以没有api调用。这个相同的设置适用于类似的测试,我可以使用"点击"或者" fillIn"触发请求。

我尝试过使用run循环和triggerEvent帮助程序(见下文)但是没有运气。

    // 1. using the run loop -- updates UI, but no change event fired

    Ember.run(function() {
      $("#gpa-slider").val(3.0).change();
    });
    andThen(() => {
      assert.equal(currentURL(), "/athletes?gpa=3.0")
    });


    //2. using triggerEvent helper -- 
    //   doesn't update UI, slider value, or trigger change event

    triggerEvent('#gpa-slider', 'change', {value: 3.8} )

    andThen(() => {
      assert.equal(currentURL(), "/athletes?gpa=3.0")
    });

我是否错误地设置了triggerEvent()?有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

我可以通过单击滑块手柄来触发更改事件。

click(Ember.$('.rangeslider__handle'));
andThen(() => {
  assert.equal(currentURL(), '/athletes?gpa=3.0');
});

我仍然不知道我使用triggerEvent()帮助器做错了什么,但也许这将有助于将来一些可怜的灵魂。