0

コードバスとイオンでハイブリッドアプリケーションのビルドをテストすると、私は奇妙なことが起こります。Karma-jasmine UncaughtReferenceエラーステータスバーが定義されていません

私はユニットテストのためにカルマジャスミンを使用します。私がテストファイルを鳴らすと、彼らは成功する。私がそれらの3つを一緒に走らせると、彼らはまだ成功する。 karma(path/tests/*。js)にすべてを含めると、3つのうち3つが成功し、次のエラーが発生します。 "StatusBar"が定義されていません。

StatusBarは、コードバープラグイン "cordova-plugin-statusbar"です。私はそれがなぜすべてのファイルを一緒にテストするときにのみ現れ、1つずつではないのだろうと思います。私はすでにテストファイルを並べ替えようとしましたが、3つ目のテストファイルの後には常に失敗しました。

テストが実行されるたびに、app.jsが初期化されて開始されます。これが問題になるかどうかは分かりません。

提案がありますか?

答えて

0

問題は、角度のあるアプリケーションモジュールをモックしなかったことです。 私のモジュールの実行機能では、 "deviceReady"イベントをリッスンする$ ionicPlatformがあります。この場合、私はステータスバーなどのコードバプラグインにアクセスします。しかし、私はプラグインでアプリケーションモジュールを嘲笑していなかったので、デバイスのイベントが発生するとすぐにテストが失敗し始めました。

問題を解決するために、グローバル変数 "testEnvironment"を定義しました。モジュールでrunメソッドをテストしたくないので、testEnvironmentがtrueであるかどうかを確認してrunメソッドを終了します。変数をグローバルに定義し、単体テストを開始するとすぐに変数を設定しました。

似たような問題を抱えている誰かがこの情報を参考にしていただければ幸いです。

関連する問題