Versuchen Sie, eine aussagekräftigere Fehlermeldung zu erhalten, indem Sie den Test vom Terminal aus wie folgt ausführen:
ng test -sm=false
In Ihrem Test können Sie ersetzen
it('should...')
mit
fit('should...')
Jetzt werden nur Tests ausgeführt, denen eine Anpassung vorausgeht . Führen Sie den Test folgendermaßen aus, um den Browser nach dem Ausführen des Tests geöffnet zu lassen:
ng test -sm=false --single-run false
Persönlich bin ich zweimal auf diesen Fehler gestoßen. Beide wurden nur beim Aufruf von fixture.detectChanges () ausgelöst.
Das erste Mal habe ich es gelöst, indem ich die String-Interpolation sicherer in meiner HTML-Datei verwendet habe.
Unsicheres Beispiel:
<p>{{user.firstName}}</p>
Sicher (r) Beispiel (beachten Sie das Fragezeichen):
<p>{{user?.firstName}}</p>
Gleiches kann für die Eigentumsbindung gelten:
<p [innerText]="user?.firstName"></p>
Das zweiten Mal habe ich eine DatePipe in meiner HTML-Datei verwendet, aber die Mock-Eigenschaft, für die ich sie verwendet habe, war kein Datum.
.html Datei:
<p>{{startDate | date: 'dd-MM-yyyy'}}</p>
.ts (Scheindaten) Datei ( falsch ):
let startDate = 'blablah';
.ts (Scheindaten) -Datei ( korrekt ):
let startDate = '2018-01-26';