帮助者Ember-cli的单元测试

时间:2016-08-16 23:12:03

标签: unit-testing ember.js ember-testing

当我在Ember CLI上创建新助手时,会在tests/unit/helpers内创建一个测试。我想知道如何使用单元测试来测试这个助手?我试图找到一份文档,但没有任何帮助。我需要测试函数createArray,以便将测试覆盖率传递给100%。

现在,这是我的帮手:

import Ember from 'ember';

export function createArray(array) {
    return array;
}

export default Ember.Helper.helper(createArray);

这是我的单元测试:tests/unit/helpers/create-array-test.js

module('Unit | Helper | create array');

// Replace this with your real tests.
test('it works', function(assert) {
  let result = createArray([42]);
  assert.ok(result);
});

希望有人可以指导我。

2 个答案:

答案 0 :(得分:2)

您使用的是哪种版本的Ember CLI?蓝图应该生成一个带有import命名导出的测试文件,以便您可以直接使用它。

export function createArray做的是创建名为createArray的{​​{3}}。这意味着您可以直接导入该函数并像使用普通函数一样使用它:

import { createArray } from 'app-name/helpers/create-array'

createArray(arrayOfArguments);

我修改了named export以演示如何在测试中执行此操作:

import { createArray } from 'app-name/helpers/create-array';
import { module, test } from 'qunit';

module('Unit | Helper | create array');

test('it works', function(assert) {
  let result = createArray([42]);
  assert.ok(result);
});

app-name替换为您的应用程序名称。

答案 1 :(得分:0)

在twiddle上发布的代码帮助我理解了如何解决帮助单元测试。这就是我测试它的方式,它就像一个魅力。

test('Return the argument is passed', function(assert) {
  assert.ok(createArray([8,4,5,6]));
  assert.ok(createArray(['test1','test2','test3']));
});