Жасмин не распознает DomSanitizer Angular

Я провожу модульное тестирование приложения Angular 5 с Jasmine. Я дошел до того, что мне нужно протестировать функцию, которая опирается на DomSanitizer:

loadImage() {
  this.image = this.sanitizer.bypassSecurityTrustStyle(`url(${this.assetUrl})`);
}

Я убедился, что эта функция работает отлично, а это означает, что DomSanitizer уже находится в конструкторе и ее синтаксис правильный.

Мой модульный тест выглядит следующим образом:

it('loads the Image', () => {
    component.loadImage()
    fixture.detectChanges();
    expect(component.imageUrl).toBe('...');
  });

Более того, DomSanitizer является частью TestBed providers:

beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        RouterTestingModule,
        CommonModule
      ],
      declarations: [
        MyComponent
      ],
      providers: [
        DomSanitizer
      ],
      schemas: [ NO_ERRORS_SCHEMA ]
    })
    .compileComponents();
  }));

Тем не менее, Jasmine выдает эту ошибку при модульном тестировании функции:

ERROR: 'Unhandled Promise rejection:', '_this.sanitizer.bypassSecurityTrustStyle is not a function', '; Zone:', 'angular', '; Task:', 'Promise.then', '; Value:', TypeError: _this.sanitizer.bypassSecurityTrustStyle is not a function

Любые идеи?

Спасибо!


person Alex Verzea    schedule 31.05.2018    source источник
comment
Удалите DomSanitizer из провайдеров и вместо CommonModule попробуйте использовать BrowserModule   -  person Poul Kruijt    schedule 31.05.2018
comment
Вам нужно импортировать BrowserModule stackoverflow.com/questions/39438039/   -  person Amit Chigadani    schedule 31.05.2018
comment
Превосходно. Большое спасибо!   -  person Alex Verzea    schedule 31.05.2018


Ответы (1)


измените его на BrowserModule вместо CommonModule, а также можно опустить DomSanitizer:

beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        RouterTestingModule,
        BrowserModule
      ],
      declarations: [
        MyComponent
      ]
      schemas: [ NO_ERRORS_SCHEMA ]
    })
    .compileComponents();
  }));
person Roee Rokah    schedule 14.09.2020