2017-03-24 6 views
6

私はTestBedでIonic2プロジェクトをテストすることに関してarticleを読んだことがあります。自分の環境の記事から例を繰り返そうとすると問題が発生します。 ステップ3でテストを開始しようとすると、エラー"ステータスバーのプロバイダがありません"が表示されます。TestBedでテスト:Noステータスバーエラーのプロバイダー

おそらく、それは愚かな質問ですが、誰かがそれが起こると思われるかもしれませんか?

ステータスバーは、app.component.tsファイルに含まれています(インポート済み)。テストベッドを使用する場合は、あなたの@NgModule

答えて

8

providers配列に追加し

import { StatusBar } from '@ionic-native/status-bar'; 
+0

ありがとうございます! これは機能します。しかし、少し奇妙な作品です。 テスト済みのコンポーネントにステータスバーをインポートする必要がありますが、テストモジュールでStatusBarを再度インポートする必要があります。 – NobbyNobbs

+0

「テストされたコンポーネントにインポートされた」という意味に依存します。 ES6のインポート、つまり「blah」からのインポート{bla}ステートメントを参照している場合は、それがすべての場所に表示されます。 – snorkpete

+0

はい、_import {bla}から 'blah'_これはまさに私が意味していたものです。 – NobbyNobbs

1

てみてください、あなたは単にテストのための全く新しい@NgModuleを作成しています。したがって、そのテストモジュールを構成して、すべての依存関係(状況によっては状況バーを含む)をインポートする必要があります。

したがって、メインアプリケーションでステータスバーをインポートするのと同じ方法(直接、またはNgModuleを含む)をインポートする場合と同じように、テストモジュールでも同じ操作を行う必要があります。

TestBed.configureTestingModule({ 
    ......, 
    providers: [ 
    StatusBar 
    ] 
}) 

または

TestBed.configureTestingModule({ 
    imports: [ 
     ModuleContainingStatusBar 
    ]  
}) 

(申し訳ありませんが、イオンに精通していない自体はそれほどあなたが使用するためステータスバーをインポート方法がわからない)

+0

応答をありがとう。すでに追加されています。 – NobbyNobbs

関連する問題