灰烬 - 无法在测试中创建帮助器

时间:2016-12-08 16:51:08

标签: javascript ember.js ember-testing

我试图为我的测试创建一个帮助器来模拟模型。

我收到了以下错误:

  

:未定义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 ["默认"]不是函数

1 个答案:

答案 0 :(得分: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我的测试帮助如果我正在进行验收测试。因此,验收测试也是错误的。