2015-08-31 3 views
2

Я пытаюсь использовать библиотеку (chance.js) в своих тестах Ember unit, но я не могу импортировать их в свои тесты.Как использовать библиотеки в тестах на модуле Ember?

До сих пор я попытался с помощью NPM (с и без ember-browserify), Bower (играл с попробовав app.import звонки в ember-cli-build.js.

Независимо от того, что я делаю, я не могу показаться, чтобы быть в состоянии доступ к chance функции/модуль.

Любая помощь будет высоко ценить. Высшие оценки будут идти к любому, кто может указать меня в проект Ember, который использует chance.js в своих модульных тестов.

Если возможно в вашем ответе, краткое объяснение того, какое управление зависимостями подходит, было бы очень полезно. Из того, что я прочитал, кажется, что NPM может оказаться тем, что проект Ember хочет отойти от Bower, см. here.

Кроме того, если кто-нибудь знает какие-либо полезные статьи (обновленный также будет плюсом), не стесняйтесь упоминать их в комментариях.

Спасибо!

Редактировать: Я полагаю, что некоторые из проблем, я вижу, связаны с Chance с помощью «анонимного» модуль AMD, который загрузчик Ember не поддерживает. Я немного поиграл, но в итоге появился с добавлением ember-faker, так как он поддерживается из коробки благодаря John Otander.

Я оставлю этот вопрос здесь в надежде, что кто-то опубликует замечательный ответ, который прояснит все :).

+0

ли вам иметь github ссылку на ваш проект или пример проекта, который не работает? Большинство людей используют сторонние библиотеки с bower и app.импорт в ember-cli-build без проблем. – Gaurav

+1

К сожалению, я не смогу поделиться вместе с моим проектом: ( –

+0

Вам стоит попробовать соединиться с Bower. –

ответ

1

Ember CLI now supports Anonymous AMD modules. В файле ember-cli-build.js используйте app.import() с преобразованием AMD, давая анонимный модуль имя вроде этого:

app.import('bower_components/chance/dist/chance.min.js', { 
    using: [ 
    { transformation: 'amd', as: 'chance' } 
    ] 
}); 

Затем, вы можете импортировать его в течение вашего приложения и тесты, как это:

import chance from 'chance'; 
1

Общие вопросы:

  • «... кажется, НПМ может быть идти как проект Ember стремится отойти от Бауэр ...». Я тоже прочитал и сделал тот же вывод.

  • «Управление зависимостями подходит ...» У меня есть практика с некоторыми модулями (lodash, d3, супергруппа, getstream, теперь шанс) и каждый раз, когда ember-browserify отлично работает.

О chance: выглядит она прекрасно работает с ember-browserify.

//console 
npm install --save-dev ember-browserify 
npm install --save-dev chance 

//using in application controller 
import Ember from 'ember'; 
import Ch from 'npm:chance'; 

var chance = new Ch(); 

export default Ember.Controller.extend({ 
    chanceString: null, 
    chanceBool: chance.bool() 
}); 

// using in application controller test 
import Ch from 'npm:chance'; 
var chance = new Ch(); 

test('can use chance in tests', function(assert) { 
    var controller = this.subject(); 
    controller.set('chanceString', chance.phone()); 
    assert.ok(controller.get('chanceString')); 
}); 

Посмотрите на рабочем примере here

+0

Это работало только для меня, если бы случай npm: chance был включен в контроллер, маршрут и т. д., которые я тестировал. https://github.com/ef4/ember-browserify/issues/14 – Phll2

Смежные вопросы