0
私はAngular 2アプリケーションを持っています。私はユニットテストにカルマとジャスミンを使用しています。 テストを実行しているときに次のエラーが発生します。 "エラー:トークン変換のプロバイダがありません!"それは誤っているものと同様の任意のサービス又はモジュールを設ける必要がない角度2ユニットテスト - 「トークン変換のプロバイダがありません」エラー
constructor(private _ccmApiService: CcmApiService,
private _usersService: UsersService,
private _foldersService: FoldersService,
private _hubService: HubService,
private _router: Router,
private _navigationService: NavigationService,
private _translate: TranslateService,
private _busyLoaderService: BusyLoaderService,
private _infoModal: InfoModal) {
}
:
これは、コンポーネントコンストラクタ(これはアプリケーションコンポーネントの)です。
アイデア?
感謝:)
しかし、私はスパイを使うのが好きですか?このハッスルを通過することなく私はできるはずですか? +クラス名はいつから2ワードになりますか?そして最後のことはちょうど明白です。これはアプリコンポーネントのコンストラクタです。これはアプリが初期化中であることを確認するためのものです。 – user1531186
スパイについては、docsのテストguidでわかるように、これは次のように動作します: "この設定はwelcome.component.specの設定と似ていますが、スタブされたサービスオブジェクトを作成するのではなく、テストモジュールプロバイダを参照)、重要なgetQuoteメソッドをジャスミンスパイに置き換えます。そのサービスの注射も提供する必要があります。 – GHB
"Token translations"という名前についても、OpaqueToken(angular2)やInjectionToken(angular4)の使用に関係していると思われます。これはエラー内にクラス名の前に "Token"という単語を置きます。私たちは、エラーの原因を見つけるために、他のサービスからコードをチェックしなければなりません(私はおそらくTranslateServiceを知らない)。しかし、あなたがそれらのいずれかを変更するたびにAppComponentのテストで別の新しいエラーが発生する可能性があるので、より良い方法はあなたのすべてのサービスをスタブするだろうと思う... – GHB