サービスをテストする必要がある次のangular(4)テストがありますが、Observableが返す前に通過していると思われ、expect
getがヒットします。非同期呼び出しが完了する前に角度テストが終了していますか?
it('should enter the assertion', inject(
[ MockBackend, CellService ],
(backend: MockBackend, s: CellService) => {
const urls = [];
backend.connections.subscribe((connection: MockConnection) => {
const req = connection.request;
urls.push(req.url);
if (req.method === RequestMethod.Get && req.url === '/api/getTest') {
connection.mockRespond(new Response(new ResponseOptions('enter mocked content')));
}
});
s.getCell('powders').subscribe(val => expect(true).toBeFalsy())
})
);
私はasync/awaitを追加しようとしましたが、違いはありませんでした。これどうやってするの?
更新:これはテストゾーンにテストをラップします
it('should enter the assertion', async(inject(
[ MockBackend, CellService ],
(backend: MockBackend, s: CellService) => {
const urls = [];
backend.connections.subscribe((connection: MockConnection) => {
const req = connection.request;
urls.push(req.url);
if (req.method === RequestMethod.Get && req.url === '/api/getTest') {
connection.mockRespond(new Response(new ResponseOptions('enter mocked content')));
}
});
s.getCell('powders').subscribe(val => expect(true).toBeFalsy())
})
));
として行わパスが、私はこのアプローチを試してみましたが、まだ期待される動作を見ていないです、私は何か間違ったことをしたのでしょうか。 –
私の更新を見てください。条件が満たされていることを確認します。そうでなければ、応答はありません。 –