7

如何在测试 Ember.js 组件时触发焦点和模糊事件?

this.$().focus();或者this.$('input').focus();似乎工作但在 phantomjs 和 chrome 中表现不同。

this.$().blur();this.$().focusout();似乎无法同时使用 phantomjs 和 chrome。

4

2 回答 2

1

较新版本的 Ember 具有可用于聚焦或模糊的测试助手。

... 
import { find, focus, blur, render } from '@ember/test-helpers';


module('Integration | Component | example-input', function(hooks) {
  
  test('it can be focused', async function(assert) {
    await render(hbs`<myInput />`);
    const input = find('input')
    
    await focus(input)
    await blur(input)
  });
  
});

模糊:https ://github.com/emberjs/ember-test-helpers/blob/master/API.md#blur

焦点:https ://github.com/emberjs/ember-test-helpers/blob/master/API.md#focus

于 2020-12-09T16:37:26.260 回答
1

试一试trigger,它对我有用

  this.$('input').focusout();
  this.$('input').blur();
  this.$('input').trigger('focusout');
  this.$('input').trigger('blur');
  this.$('input').trigger('keyup'); // another event that you can trigger

更多信息

于 2016-10-08T07:48:57.370 回答