クライアント上のデータと対話し、サーバーを呼び出さないいくつかの非同期メソッドを実行する必要があるコントローラーがあります。ブラウザーで正常に動作するメソッドが 1 つありますが、メソッドをテストで駆動したいのですが、テスト環境 (カルマとモカ) で動作させることができません。その理由は、Promise が解決されないため、$resource.query() が返す空の配列がテスト環境に入力されないためです。これがテスト スイートの beforeEach です。
beforeEach(inject(function($rootScope, $controller, scheduleService){
scope = $rootScope.$new();
sc = $controller('scheduleCtrl', {
$scope: scope, service: scheduleService
});
scope.$apply();
}));
scheduleCtrl には、そのコンストラクターで Resource.query() の結果に割り当てられるプロパティ schedule があります。返された 3 つのオブジェクトが MockHttpExpectation に読み込まれていることがわかります。
しかし、テストを実行すると、sc.schedule はまだ空の配列であるため、テストは失敗します。テストで Resource.query() を解決するにはどうすればよいですか?