繁体   English   中英

在单元测试中使用初始化程序?

[英]Using an initializer in an unit test?

我有一个stdlib初始化器。 在该初始化程序中,我重新打开一些内置的Ember类并添加一些自定义方法。 例如,我将reverseEach添加到Ember.EnumerableArray

它们在应用程序中运行良好,但在测试中我收到“reverseEach:undefined不是函数”。

我如何表明测试应该使用初始化程序?

我尝试了needs: [..., 'initializer:stdlib'] 它没有偶然发现,但我仍然收到“未定义”的错误。

这是一个示例测试:

`import { test, moduleForModel } from 'ember-qunit'`

moduleForModel 'foo', 'foo',
  needs: [
    'model:bar'
    'initializer:stdlib'
  ]

test 'deleteLastNItems', ->
  model = @subject()
  model.set '', ['foo', 'bar', 'baz', 'quux']
  model.deleteLastNItems 2 # This should not die with "reverseEach: undefined is not a function"
  deepEquals model.get('someProperty'), ['foo', 'bar']

你可以使用ember g initializer stdlib ,它会为你生成示例代码,包括test。

import Ember from 'ember';
import { initialize } from '../../../initializers/stdlib';
import { module, test } from 'qunit';

var registry, application;

module('Unit | Initializer | stdlib', {
  beforeEach: function() {
    Ember.run(function() {
      application = Ember.Application.create();
      registry = application.registry;
      application.deferReadiness();
    });
  }
});

// Replace this with your real tests.
test('it works', function(assert) {
  initialize(registry, application);

  // you would normally confirm the results of the initializer here
  assert.ok(true);
});

参考: 灰烬蓝图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM