Prova se ricevi un messaggio di errore più descrittivo eseguendo il test dal terminale, in questo modo:
ng test -sm=false
Nel tuo test, puoi sostituire
it('should...')
con
fit('should...')
Ora verranno eseguiti solo i test preceduti da fit . Per lasciare il browser aperto dopo aver eseguito il test, esegui il test in questo modo:
ng test -sm=false --single-run false
Personalmente, ho riscontrato questo errore due volte. Entrambi sono stati attivati solo quando si chiama fixture.detectChanges ().
La prima volta l'ho risolto utilizzando l'interpolazione delle stringhe in modo più sicuro nel mio file .html.
Esempio non sicuro :
<p>{{user.firstName}}</p>
Esempio Safe (r) (nota il punto interrogativo):
<p>{{user?.firstName}}</p>
Lo stesso può valere per l'associazione di proprietà:
<p [innerText]="user?.firstName"></p>
La seconda volta, stavo usando un DatePipe nel mio file .html, ma la proprietà mock su cui l'ho usato non era una data.
file .html:
<p>{{startDate | date: 'dd-MM-yyyy'}}</p>
File .ts (mock-data) ( sbagliato ):
let startDate = 'blablah';
File .ts (mock-data) ( corretto ):
let startDate = '2018-01-26';