Specs:
- 灰烬版本:1.13.8
- 节点:0.10.33
- npm:2.13.4
I have
import Alias from "../../../services/alias";
....
moduleFor("controller:test", "Controller: test", {
integration: true,
beforeEach: function() {
this.register('service:alias', Alias, {singleton: true});
this.inject.service('alias', { as: 'alias' });
this.advanceReadiness();
},
});
...
test('Alias Alias Alias ', function(assert) {
var controller = this.subject();
//sample function
controller.send("test");
assert.equal(true, controller.alias.get("alias"), "alias should be true");
});
(Using 'alias' as example because I'm not allow to show actual code)
我尝试初始化服务,但在 Ember Qunit 测试期间,控制器没有注入服务。
我尝试将注入放入: init() 而不是 beforeEach 中,也不起作用......
如何在单元测试期间注入它?
我在调试器中放置断点来查看我的控制器是否有该服务,但在测试期间没有。不过,在正常的 ember 发球上就可以了。
您不必导入服务。您必须将服务纳入如下需求中。
moduleFor("controller:test", {
needs: ['service:alias']
});
For eg:
服务/alias.js
Em.service.extend({
name: 'john'
});
控制器/test.js
Em.Controller.extend({
alias: Em.service.inject(),
test: function() {
alert(this.get('alias.name');
}
});
测试/单元/控制器/test-test.js
moduleFor('controller:test', {
needs: ['service:store']
});
test('Alias Alias Alias', function(assert) {
var controller = this.subject();
assert.equal(controller.get('store.name'), 'john);
});
为了运行此测试,Ember 将生成一个容器,其中包含controller test
and service alias
。因此,您可以访问带有名称前缀的服务属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)