私は角度2のプロジェクトと角度付きのサービスを作成し、サービスをテストしようとしました。angular2テストフレームワークの非同期テストの問題
しかし、APIは非同期機能では失敗しませんが、その例外を無視するだけです。
/* tslint:disable:no-unused-variable */
import {
beforeEach, beforeEachProviders, describe, xdescribe,
expect, it, xit, async, inject, injectAsync
} from '@angular/core/testing';
import { SearchService } from './search.service';
import {provide} from '@angular/core';
import {MockBackend, MockConnection} from '@angular/http/testing';
import {XHRBackend, Response, ResponseOptions, HTTP_PROVIDERS} from '@angular/http';
describe('Search Service',() => {
let searchService: SearchService;
let mockBackend: MockBackend;
beforeEachProviders(() => [
HTTP_PROVIDERS,
MockBackend,
provide(XHRBackend, { useClass: MockBackend }),
SearchService
]);
beforeEach(injectAsync([SearchService, MockBackend], (s, m) => {
searchService = s;
mockBackend = m;
}));
it('async test',() => {
setTimeout(() => {
expect(2).toBe(1);
}, 3000);
});
これらの最小テストケースは無視されます。
私はいくつかのドキュメントを読んで、私のコードを次のように更新しました。
it('async test with done', (done) => {
setTimeout(() => {
expect(1).toBe(1);
done();
}, 1000);
});
今回は、テストは失敗しますが、今回は失敗します。エラーは次のとおりです。
エラー:タイムアウト - jasmine.DEFAULT_TIMEOUT_INTERVALで指定されたタイムアウト内に非同期コールバックが呼び出されませんでした。
デフォルトのタイムアウト値をより大きな値に変更しますが、効果がありません。
何Angular2バージョンを使用していますか? –
そのバージョンは2.0.0-rc.3 –