如何在单元测试中将商店注入Ember.Service?

时间:2015-04-03 13:48:02

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

在我的应用程序中,我有这个初始化程序,它将商店注入所有服务:

export function initialize(container, application) {
  application.inject('service', 'store', 'store:main');
}

export default {
  name: 'inject-store-in-services',
  initialize: initialize
};

我的问题是,当我运行单元测试时,服务没有store属性。所以我的问题是:有没有办法实现我的初始化程序在单元测试上下文中的作用?

1 个答案:

答案 0 :(得分:13)

在最近的Ember版本中,您可以将商店注入服务,例如:

Ember.Service.extend({
  store: Ember.inject.service()
});

它从属性名称中获取服务名称,因此如果您将其称为其他内容,则需要指定' store' ...例如:

Ember.Service.extend({
  banana: Ember.inject.service('store')
});