Угловой тест: переопределить, чтобы использовать шаблон вместо templateUrl - PullRequest
0 голосов
/ 22 октября 2018

У меня есть компонент, который содержит iframe.Чтобы не загружать несуществующий URL из iframe в тестах, я хотел бы смоделировать шаблон компонента.Я думал, что смогу сделать это, используя TestBed.overrideComponent(), но это не имеет никакого эффекта.При выполнении теста я вижу, что оригинальный шаблон присутствует, и iframe загружает несуществующий URL.

Что я пробовал:

fixture = TestBed.overrideComponent(IFrameComponent, {
  remove: {
    templateUrl: './iframe.component.html'
  },
  add: {
    template: '<div></div>'
  }
}).createComponent(IFrameComponent);

Как я могу переопределить компонент, чтобы использовать template вместоtemplateUrl

1 Ответ

0 голосов
/ 22 октября 2018

Причина, по которой это не сработало для меня, заключалась в том, что я позвонил TestBed.overrideComponent() после compileComponents().

Правильный порядок такой:

TestBed.configureTestingModule({
   declarations: [IFrameComponent]
}).overrideComponent(IFrameComponent, {
   remove: {
      templateUrl: './iframe.component.html'
   },
   add: {
      template: '<div data-test-iframe="iframe"></div>'
   }
}).compileComponents();
fixture = TestBed.createComponent(IFrameComponent);
...