当我尝试检查注入到 Mixin 中的服务时,我的单元测试套件中弹出一个错误,因为该服务getOwner()
已添加到 Ember 中(此处的弃用指南)。
这是我的混音:
import Ember from 'ember';
export default Ember.Mixin.create({
sha: Ember.inject.service('sha512'),
});
这是我的基本单元测试在被 ember-cli 生成后略有变化:
import Ember from 'ember';
import DirtyRelationshipsDetectorMixin from 'xamoom-customer/mixins/dirty-relationships-detector';
import { module, test } from 'qunit';
module('Unit | Mixin | dirty relationships detector');
test('it works', function(assert) {
let DirtyRelationshipsDetectorObject = Ember.Object.extend(DirtyRelationshipsDetectorMixin);
let subject = DirtyRelationshipsDetectorObject.create();
assert.ok(subject);
assert.ok(subject.get('sha')); // problem occurs here
});
我收到的错误消息很清楚,但我还没有找到解决方案:
错误:断言失败:尝试在没有容器的对象上查找注入的属性,请确保该对象是通过容器实例化的。
应用程序运行时服务就在那里,只是测试失败。 Ember 2.5.1 - Ember-CLI 2.5.0