Как выполнить интеграционное тестирование QUnit в Ember для компонента, который использует помощник, выводящий HTML?

У меня есть компонент Ember, который использует помощник, создающий HTML, и я пытаюсь создать тест, который проверяет HTML, полученный в результате комбинированного компонента и вспомогательного HTML.

Пример...
компонент производит:<div class="one"></div>

помощник производит:<div class="two"></div>

комбайн производит:<div class="one"><div class="two"></div></div>

Что происходит, так это то, что HTMLBars не создает HTML-код помощника. Он вводит значение JSON, переданное в помощник.

Итак, тест выдает:<div class="one">true</div>

Нужно ли что-то включать, чтобы сказать, что помощник должен быть активен?


person Micki T    schedule 13.04.2016    source источник


Ответы (1)


В вашем коде должна быть ошибка. Неважно, использует ли ваш компонент помощник или нет для интеграционных тестов. Я написал короткую программу Ember Twiddle для демонстрации:

// /app/helpers/hello-world.js
import Ember from 'ember';

export function helloWorld(params/*, hash*/) {
  return new Ember.Handlebars.SafeString('<strong>Hello World!</strong>');
}

export default Ember.Helper.helper(helloWorld);

// /app/components/component-using-helper.js
import Ember from 'ember';

export default Ember.Component.extend({
  tagName: 'p'
});

// /tests/integration/components/component-using-helper.js

import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';

moduleForComponent('component-using-helper', 'TODO: put something here', {
  integration: true
});

test('it renders', function(assert) {
  this.render(hbs`{{component-using-helper}}`);

  assert.ok(this.$('p').length === 1);
  assert.ok(this.$('p strong').length === 1);
  assert.equal(this.$('p strong').html().trim(), 'Hello World!');
});

Тест проходит.

person jelhan    schedule 14.04.2016
comment
да, я нашел ошибку в своем json, которую раньше не замечал. большое спасибо! и спасибо за расшифровку моего кода, у меня были проблемы с работой блока кода. - person Micki T; 15.04.2016