2017-12-28 21 views
0

テストでの変更を検出するにはどうすればよいですか?角度非同期検出の変更

コンポーネントと

、私はこれを持っています:

it('should work', async(() => { 
    const fixture = TestBed.createComponent(TestComponent); 
    // do some async call 
    fixture.detectChanges(); // <=== This is what I want 
    expect(something).toEqual(somethingElse); 
}); 

をサービスでは、私はいつもテストベッドを持っていません。アサートする前に角を伝える方法を教えてください。例:

it('should work', async(() => { 
    const service = new MyService(); 
    const sub = service.emitter$.subscribe((val) => { 
    // expect(val).toEqual(otherVal); 
    }); 
    service.doAsyncWork(); 
}); 

これらの接続方法は?確認するフェーズが2つある場合(たとえば、その非同期作業の前に一度、一度は終了しますが、最初の期間の後にすべて)

答えて

1

fakeAsynctickを使用すると、時間をシミュレートできます。

it('should work', fakeAsync(() => { 
    const fixture = TestBed.createComponent(TestComponent); 
    // do some async call 
    tick(10000);  
    expect(something).toEqual(somethingElse); 
}); 
+0

これは一時的な解決策ですが、場合によっては、この受信データの管理外のものに依存しています。しかし、ありがとう。 – Zlatko

関連する問題