Интеграционный тест шаблона маршрутов в Ember.js
У меня есть приложение ember-cli 2.4.2, которое содержит маршрут myroute
и шаблон myroute.hbs
,
Когда я тестирую компоненты интеграции, я делаю что-то вроде этого,
import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
moduleForComponent('mycomponent', 'Integration | Component | mycomponent', {
integration: true
});
test('the component', function(assert) {
this.render(hbs`
{{#mycomponent}}
text
{{/mycomponent}}
`);
assert.notEqual(this.$('.container').text().trim(), 'text');
});
Когда я использую moduleFor('route:myroute')
, вызов this.render()
бросает this.render is not a function
, Как ниже, если я позвоню route.render()
это бросает Error: Assertion Failed: Could not find "hbs{{myroute}}" template, view, or component.
Целью является интеграционное тестирование шаблона маршрута. Я хотел бы использовать jQuery, чтобы убедиться, что шаблон отображается правильно. У меня есть некоторые вычисленные свойства на маршруте, которые влияют на то, что отображается.
Я не могу найти хорошую документацию по тестированию интеграции шаблона маршрутов. Любые идеи или указатели? Большое спасибо.
import Ember from 'ember';
import { moduleFor, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
moduleFor('route:myroute', 'Integration | Route | myroute', {
integration: true,
});
test('the route', function(assert) {
const mockModel = {
response: { field1: true, field2: false }
};
const route = this.subject({ model: mockModel });
route.render(`hbs{{myroute}}`);
// ...
});
2 ответа
Я думаю, что для решения проблемы лучше всего использовать приемочные тесты, в которых вы можете использовать jQuery, а также переходить к определенным маршрутам в вашем приложении. Вы также получаете асинхронные помощники там, как andThen
, visit
, Пожалуйста, обратитесь к Руководствам Ember по приемочным испытаниям.
Если вам нужно протестировать шаблон маршрута, используйте приемочные тесты.
Если вам нужно протестировать методы и вычисленные свойства маршрута, используйте модульные тесты.