Javascript 如何在单元测试中将存储注入到一个Ember.Service中?

Javascript 如何在单元测试中将存储注入到一个Ember.Service中?,javascript,unit-testing,ember.js,ember-cli,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

在我的应用程序中,我有一个将商店注入所有服务的初始值设定项:

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”。。e、 g:

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

模拟商店,单元测试不应该超出服务范围。@Kingpin2k我的服务实际上只是一个包装,包装了我不想在我的应用程序中到处重复的模型上的预定义操作。我需要测试它是否返回一个属性设置正确的
DS.Model
。模拟商店只会测试我的模拟,所以…当你运行测试时它不起作用。。当你的应用程序正常运行时(不是在测试模式下)它能工作吗?它可能会失败,因为你的初始化器可能在商店初始化器之前运行-这意味着它不可用。yetI知道注入服务的API,但我认为它在商店中不起作用。谢谢我认为store as a service是最近添加的。对我来说,它说“尝试注入未知注入:
service:store
”。它在某处有文档记录。另外,请注意,如果您这样做,您将不得不说“this.get('store')”,而不是
this.store