私はディレクティブ内の特定のコードをテストするために$タイムアウトをフラッシュするディレクティブのジャスミンテストを行っています。アプリケーション内の別の時点で、私は次のように解決
$stateProvider
.state('home', {
url: '/home',
component: 'home',
resolve: {
myservice: "myservice",
myItems: function(myservice) {
return myservice.resource.query().$promise;
}
}
})
とUI-ルータの取り扱いナビゲーションを持っているディレクティブは、このホームコンポーネント(ディレクティブが部品の内部にネストされた)と同じ角度のモジュールです。
ディレクティブのテストが実行され、$ timeout.flush()が呼び出されるたびに、クエリのURLに「エラー:予期しない要求」が表示されます。これは、ディレクティブとそのコンポーネントを関連付けるべきではないとしても起こります。クイックフィックスは、修正するために$ httpBackendを追加するだけですが、これは起こってはいけません。追加されるものが増えるにつれて、問題が再現されると思います。
私はそれが要求を引き起こしている解決機能であることを確認しました。b)指示テストで$状態をチェックしましたが、空の文字列を返しました。それが助け場合は、次のようにホーム状態c)その
のようなこのコンポーネントまたは何かを参照するディレクティブのテストにはコードがありませんが、テストでセットアップコードは次のとおりです。オーケー
scope = $rootScope.$new();
var element = $compile('..../*doesnt include home component at all*/......')(scope);
scope.$digest();
$timeout.flush();