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

How to inject the store into an Ember.Service in unit tests?

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

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

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

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

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

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

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

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