テスト中に非同期メソッドが呼び出されたことを確認する際に問題があります。ここに簡単な例があります。Angular2 rc4非同期テスト
このテストは、約束が解決される前に解決が呼び出されたかどうかを最終的に確認するために失敗します。最終的な期待を取り除くと、その約束が自然に解決されることを確認する方法がありません。ここで失敗するはずの例はありません。
describe('async test',() => {
it('promise should resolve', async(() => {
let resolve = jasmine.createSpy('resolve').and.callFake((n) => {
expect(n).toEqual(1);
});
let promise = new Promise(() => {});
promise.then(resolve);
}));
});
期待がテストに呼ばれることはありません決意であるためには、それは決意が呼ばれることはなかったではないはずなので、にもかかわらず渡します。 Angular2のasync()メソッドは、すべての非同期メソッドが完了するまで完了してはいけませんが、これは当てはまりません。しかし、Jasmine2のdone関数を使用することはできますが、これはinject()またはasync()を呼び出さなければならないテストとうまくやりとりできないようです。
私は正確な問題を抱えています。非同期関数はすべての非同期タスクをまったく待たないようです。 – cgcladera