2

Ember に追加されたので、Mixin に注入されたサービスをチェックしようとすると、単体テスト スイートにポップアップするエラーの問題が発生しています(廃止ガイドはこちら)。getOwner()

これは私のミックスインです:

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
});

表示されるエラー メッセージは非常に明確ですが、解決策が見つかりません。

エラー: アサーションに失敗しました: コンテナのないオブジェクトで注入されたプロパティをルックアップしようとしています。オブジェクトがコンテナを介してインスタンス化されていることを確認してください。

アプリが実行されているとき、サービスはそこにあります。失敗するのはテストだけです。 エンバー 2.5.1 - エンバー CLI 2.5.0

4

1 に答える 1