Как исправить Нет провайдера для ChangeDetectorRef!в карма-жасминовом тестировании - PullRequest
0 голосов
/ 29 января 2019

StaticInjectorError (DynamicTestModule) [MatTable -> ChangeDetectorRef]: StaticInjectorError (Платформа: ядро) [MatTable -> ChangeDetectorRef]: NullInjectorError: Нет поставщика для ChangeDetectorRef!

* 1004

1 Ответ

0 голосов
/ 29 января 2019

Используете ли вы ChangeDetectionStrategy.OnPush в качестве стратегии обнаружения изменений?ChangeDetectorRef на самом деле доступен для прибора, как объяснено здесь .

Если вы определили ChangeDetectorRef как один из ваших личных атрибутов в вашем компоненте, например:

constructor(private cdr: ChangeDetectorRef) { }

Поскольку он является частным, вам следует создать шпион в качестве заглушки для этого атрибута в тестовом файле и проверить, вызывается ли ChangeDetectorRef.Просто смоделируйте CDR в вашем файле .spec, выполнив следующее:

it('test CDR', () => {
  const spyCDR = spyOn((component as any).cdr, 'detectChanges'); 

  component.method();    
  expect(spyCDR).toHaveBeenCalled();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...