Ember - не удается создать помощника в тесте

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

Однако я получаю следующую ошибку:

: makeInventoryObjects не определен

Мой тестовый помощник:

// ../tests/helpers/make-inventory-objects.js
import Ember from 'ember';

export default Ember.Test.registerAsyncHelper('makeInventoryObjects', function() {
    const inventoryObjects = [{'id': 1, 'name': 'test'}];
    return inventoryObjects;
});

Мое стартовое приложение в помощниках содержит application.injectTestHelpers();

Тест, который не работает:

import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
// I tried to import manually too and it did not work
// import makeInventoryObjects from '../../helpers/make-inventory-objects';

moduleForComponent('model-table', 'Integration | Component | model table', {
    integration: true
});

test('it renders', function(assert) {
    this.set('inventoryResult', makeInventoryObjects());
    this.render(hbs`{{model-table inventoryResult}}`);
    assert.equal(this.$().text().trim(), '');
});   

Всякий раз, когда я добавляю комментарий к импорту, я получаю эту ошибку:

: _frontendTestsHelpersMakeInventoryObjects["default"] не является функцией


person tupan    schedule 08.12.2016    source источник


Ответы (1)


Основная причина того, что я сделал, потерпела неудачу, потому что я пытался инициализировать помощника в startApp, и это делается только для acceptance test, а не integration test.

Мне пришлось переписать мой помощник на:

// ../tests/helpers/make-inventory-objects.js
export default function makeInventoryObjects() {
    const inventoryObjects = [{'id': 1, 'name': 'test'}];
    return inventoryObjects;
});

а затем импортировать в мой тест с закомментированной строкой.

Кроме того, в качестве примечания я пропустил добавление .jshintrc моего помощника по тестированию, если я проводил приемочное тестирование. Таким образом, это было неправильно и для приемочного испытания.

person tupan    schedule 12.12.2016