Интеграционный тест шаблона маршрутов в 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 по приемочным испытаниям.

Если вам нужно протестировать шаблон маршрута, используйте приемочные тесты.

Если вам нужно протестировать методы и вычисленные свойства маршрута, используйте модульные тесты.

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