Спробуйте, якщо ви отримаєте більш описове повідомлення про помилку, запустивши тест з терміналу, наприклад:
ng test -sm=false
У своєму тесті ви можете замінити
it('should...')
з
fit('should...')
Тепер працюватимуть лише тести, які передують придатності . Щоб залишити браузер відкритим після запуску тесту, запустіть тест так:
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 (макет-дані) файл ( неправильно ):
let startDate = 'blablah';
.ts (макет-дані) файл ( правильний ):
let startDate = '2018-01-26';