テスト時にangular-translateによるリクエストをスルーする


angular-translateでuseStaticFilesLoaderを使用しており、さらにテストで$httpBackendをインジェクションしている場合、テスト実行時に次のようなエラーが出ると思う。

Unexpected request: GET scripts/i18n/locale-ja.json

ロケールファイルへのアクセスが怒られているようだ。$httpBackendを使用する場合は、リクエストされる全てのURLに対してモックを用意をしてあげないとダメということか?

そんなことやってられないので、ロケールファイルへのアクセスにはダミーを返すようにすればよい。

...
angular.module('translateMock', [])
  .factory '$translateStaticFilesLoader', ($q) ->
    ->
      deferred = $q.defer()
      deferred.resolve({}) #空のJSONを返す
      deferred.promise

# modules
beforeEach ->
  module 'App'
  module 'translateMock'
...

これできっと幸せになれるはず。

関連する記事


コメントする

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください