Wie kann ich "Änderungen erkennen" beim Testen von Angular ohne Testbed?Angular async erkennt Änderungen
Mit einer Komponente, ich werde diese:
it('should work', async(() => {
const fixture = TestBed.createComponent(TestComponent);
// do some async call
fixture.detectChanges(); // <=== This is what I want
expect(something).toEqual(somethingElse);
});
Mit einem Service, habe ich nicht immer ein Testbed. Wie man angular erklärt, um zu warten, bevor er behauptet? Beispiel:
it('should work', async(() => {
const service = new MyService();
const sub = service.emitter$.subscribe((val) => {
// expect(val).toEqual(otherVal);
});
service.doAsyncWork();
});
Wie werden diese verbunden? Was passiert, wenn ich zwei Phasen überprüfen muss (z. B. einmal vor dieser asynchronen Arbeit, einmal danach, aber alle nach einer anfänglichen Periode)?
Das ist eine vorübergehende Lösung, in einigen Fällen bin ich auf Dinge angewiesen, die sich außerhalb meiner Kontrolle für diese eingehenden Daten befinden. Trotzdem danke. – Zlatko