0

モデルをシミュレートするために、テスト用のヘルパーを作成しようとしています。

ただし、次のエラーが表示されます。

: 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"] は関数ではありません

4

1 に答える 1

0

私が行ったことが失敗した主な理由は、startApp 内でヘルパーを初期化しようとしていたためacceptance testですintegration test

ヘルパーを次のように書き直す必要がありました。

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

次に、コメント行を使用してテストにインポートします。

また、余談ですが、受け入れテストを行っている場合.jshintrc、テスト ヘルパーを追加するのを忘れていました。だから、受け入れテストも間違っていた。

于 2016-12-12T18:13:20.210 に答える