Попробуйте, если вы получите более информативное сообщение об ошибке, запустив тест с терминала, например:
ng test -sm=false
В своем тесте вы можете заменить
it('should...')
с участием
fit('should...')
Теперь будут запускаться только тесты, которым предшествует fit . Чтобы оставить браузер открытым после запуска теста, запустите тест следующим образом:
ng test -sm=false --single-run false
Лично я сталкивался с этой ошибкой дважды. Оба срабатывали только при вызове fixture.detectChanges ().
В первый раз я решил это, используя более безопасную интерполяцию строк в моем файле .html.
Небезопасный пример:
<p>{{user.firstName}}</p>
Пример безопасного (r) (обратите внимание на вопросительный знак):
<p>{{user?.firstName}}</p>
То же самое может относиться к привязке свойств:
<p [innerText]="user?.firstName"></p>
Во второй раз я использовал DatePipe в моем .html файле, но фиктивное свойство, в котором я его использовал, не было датой.
.html файл:
<p>{{startDate | date: 'dd-MM-yyyy'}}</p>
Файл .ts (mock-data) ( неверный ):
let startDate = 'blablah';
Файл .ts (mock-data) ( правильный ):
let startDate = '2018-01-26';