Модульный тест для помощников Ember-cli

Когда я создаю новый помощник в 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);
});

Надеюсь, кто-то может направить меня.


person karinfdez    schedule 16.08.2016    source источник


Ответы (2)


Какую версию Ember CLI вы используете? Схема должна сгенерировать тестовый файл с import именованного экспорта, чтобы вы могли использовать его напрямую.

Что делает export function createArray, так это создает именованный экспорт с именем createArray. Это означает, что вы можете напрямую импортировать функцию и использовать ее как обычную функцию:

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

createArray(arrayOfArguments);

Я изменил @ykaragol's Twiddle, чтобы продемонстрировать, как это сделать в тесте:

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 именем вашего приложения.

person locks    schedule 17.08.2016

Код, размещенный на twiddle, помог мне понять, как решить модульный тест помощников. Вот как я это проверил, и это работает как шарм.

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