私はすでにどこにでも見えましたが、私の特定のケースではまだ解決策を見つけることができませんでした。Angular 1.5 && Async/Await &&ジャスミンテスト
ユニットテストでは、角度1.5とカルマ/ジャスミン設定を使用しています。最初のソースコードでは、コントローラでES2017 async/awaitを使用しました。最後に手作業で$ digestの$ applyを追加していれば、それはうまくいくように思えました。 ですから、例えば:
async function loadData() {
try {
vm.isLoading = true;
vm.data = await DataService.getData();
$scope.$apply();
}
catch (ex) {
vm.isLoading = false;
}
}
この特定の機能のための自動テストを書くために、私はジャスミンのspyOn
でDataService.getDataを嘲笑してみました。だから、私はこのようなものでした:スパイを追加
spyOn(DataService, 'getData').and.returnValue($q.when(fakeResult));
を働いたが、テストを実行するときに、コードがfakeResult
で解決打たなく取得するようです。テスト自体に$ digest/$ applyを追加しようとしましたが、修正できませんでした。私も多くの研究をしましたが、まだ手がかりがありません。
誰かが手掛かりを持っていますか?
編集:$q
約束と同じ方法をテストすることは正常に動作しますが、私は本当に非同期/のawaitを使用したいと思います...
FYIの 'async/await'は、今年リリースされたES7ではなく、来年リリースされるES2017の一部です。 –