如何在余烬验收测试中访问服务

时间:2015-10-06 20:52:03

标签: ember.js

运行ember 1.13.6和ember-cli

我有一个ember组件,我正在尝试接受测试。它的状态与我的应用程序中的服务状态密切相关,因此我希望直接访问该服务并从我的验收测试中更改其属性。

我一直在尝试各种各样的事情 this.application.__container__.lookup['service:side-bar'])this.application.__container__.cache['service:side-bar'])

但我似乎无法获得我的应用正在使用的实际有效服务单例以及我可以调用get()set()

如果我尝试使用Ember.inject.service,我会得到一个模糊的错误Uncaught TypeError: Object.defineProperty called on non-object(…),这听起来像一个错误

1 个答案:

答案 0 :(得分:1)

通过这样做,我成功地获得了1.13.x中的服务:

let myService;
module("Acceptance | xxxxx", {
  beforeEach() {
    this.application = startApp()
    myService = this.application.__container__.lookup('service:my-service');
  }
});

您的问题可能是您尝试使用数组表示法(lookup['my-service'])而不是方法调用(lookup('my-service'))。

希望这有帮助!