Команды jquery не работают в тестах с использованием рендеринга hbs в ember.js
Я работал над написанием собственных тестов компонентов в Ember.js 2.5. В настоящее время я пытаюсь проверить изменение свойства при нажатии кнопки. Тесты могут выполняться просто без ошибок, но команды jquery в тесте, похоже, не работают. например this.$('button').click();
Я следовал за руководством здесь, https://guides.emberjs.com/v2.5.0/testing/testing-components/, и даже следовал, делая точно то, что они делали - те же имена компонентов и все, но по-прежнему ничего. Нет ошибок, JQuery просто не работает.
Поскольку в тестировании компонента для рендеринга компонента используется дополнение htmlbars-inline-precompile, я обязательно выполнил все инструкции для этого репо. Babel был обновлен, и в Bower установлены все необходимые предпосылки.
Вот тестовый код по запросу
test('it closes', function(assert) {
this.render(hbs`{{modals/personal-information}}`);
//making sure the property is set correctly before test
this.set('isOpen', true);
this.$('button').close();
assert.equal('isOpen', false);
}
1 ответ
На это ответили с помощью Китлера.
Я устанавливал свойство не на самом отображаемом компоненте, а на тесте. Как только я понял, как установить и получить свойства самого компонента, мой тест функционировал отлично.
Я следовал этому руководству, тесты интеграции компонентов Ember
Вот новый пример моего кода.
test('it closes', function(assert) {
assert.expect(1);
this.set('open', true);
this.render(hbs`{{modals/personal-information isOpen=open id="modal"}}`);
var $button = this.$('#modal button');
$button.click();
assert.equal(this.get('open'), false);
});