9

私は AngularJS + Karma を使用しています。 configServiceアプリの設定を管理します (例: 背景色、デバッグ モードかどうか、一般的なアクセス許可など)。$http で初期データを読み込みます。サービスのテストを正常に作成しましたが、ディレクティブとコントローラーがそれを使用しています。

ディレクティブの単体テストを作成するときは、サービスをモックする必要があります。

私はできることを知っています:

spyOn(configService, 'getBackgroundColor').andCallFake(function (params) {
   return "red";
});

ただし、サービスには 25 以上のメソッドと初期データ ロードがあります。すべてのテストスイートでこのspyOnのことを書く(そして維持する)気がしません。さらに、$http を使用してファクトリにデータをロードしますが、これもモックする必要があります。サービスを注入して呼び出しをモックするだけの場合でも、http get 要求を行います。

モックを再利用する最良の方法は何だと思いますか?

4

2 に答える 2

0

モックを作成するために呼び出した単純な古い JavaScript 関数を含む .js ファイルを作成しました。テスト用のサーバー応答を構成するためのもう 1 つの単純な古い JavaScript 関数。そして、あなたが言うように、json 応答でグローバル変数を定義すると、テストでそれを使用して比較できます

于 2014-04-22T21:08:33.133 に答える