【问题标题】:How do I make use of libraries in my Ember unit tests?如何在 Ember 单元测试中使用库?
【发布时间】:2015-08-31 13:32:22
【问题描述】:

我试图在我的 Ember 单元测试中使用一个库 (chance.js),但我似乎无法在我的测试中导入它。

到目前为止,我已经尝试过使用NPM(有和没有ember-browserify)、Bower(在ember-cli-build.js 中尝试使用app.import 调用。

无论我做什么,我似乎都无法访问chance 函数/模块。

任何帮助将不胜感激。任何人只要能指出我在单元测试中使用 chance.js 的 Ember 项目,就会获得最高分。

如果可能的话,简要说明哪种依赖管理是合适的将非常有帮助。根据我的阅读,NPM 可能是首选,因为 Ember 项目正在寻求从 Bower 中移除,请参阅 here

另外,如果有人知道任何有用的文章(最新的也是加分项),请随时在 cmets 中提及它们。

谢谢!

编辑: 我相信我看到的一些问题与使用“匿名”AMD 模块的 Chance 有关,Ember 的加载程序不支持该模块。我又玩了一会儿,但最终还是使用了 ember-faker 插件,因为 John Otander 支持开箱即用。

我将把这个问题留在这里,希望有人发布一个可以澄清事情的精彩答案:)。

【问题讨论】:

  • 您是否有指向您的项目的 github 链接或无法运行的示例项目?大多数人在 ember-cli-build 中使用带有 bower 和 app.import 的第三方库没有问题。
  • 很遗憾我无法分享我的项目 :(.
  • 你应该试试 Bower。
  • 下面的答案对你不起作用?

标签: ember.js ember-cli


【解决方案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';

【讨论】:

    【解决方案2】:

    一般问题:

    • “...看起来 NPM 可能是首选,因为 Ember 项目正在寻求远离 Bower...”。我也读过,也得出了同样的结论。

    • “哪个依赖管理是合适的......”我对一些模块(lodash、d3、supergroup、getstream、now chance)进行了练习,每次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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 2014-03-28
    • 2015-02-14
    • 2014-12-06
    • 2019-01-29
    • 1970-01-01
    相关资源
    最近更新 更多