Команды 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);

});
Другие вопросы по тегам