Подтверждение поставщиков угловых испытательных стендов, обеспечение возможности его построения? - PullRequest
1 голос
/ 27 октября 2019

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

Проблема в том, что я не получил никаких отзывов или ошибок от тестового стендаЕсть ли способ проверить, что все хорошо?

Например, я делаю это

TestBed.configureTestingModule({
  imports: [HttpClientTestingModule, HttpClientModule],
  providers: [
    {
      multi: true,
      provide: HTTP_INTERCEPTORS,
      useClass: BaseRefInterceptor
    }
  ]
})

Проблема выше в том, что BaseRefInterceptor требуется поставщик журналирования, который я забыл предоставить, ноНичто не давало ошибки, просто некоторые мои тесты провалились - но ошибка в тестах не указала на невозможность конструирования перехватчика.

Я надеялся на ошибку, говорящую, отсутствует инжектор или что-то подобное

Есть идеи, как это сделать?

1 Ответ

1 голос
/ 27 октября 2019

Это не тот путь, по которому можно пройти модульное тестирование. Модульный тест используется для изоляции функциональности текущего программного обеспечения, которое вы пытаетесь выполнить модульным тестом.

Пожалуйста, посмотрите здесь , чтобы получить превосходный ответ о модульном тестировании с зависимостями

Нет способа сделать это, так как это неправильный / намеченный путь. Что вам нужно сделать, это смоделировать функциональность BaseRefInterceptor и вернуть любые данные, которые вы хотите. Тем более, что в другой день вы добавите еще одну зависимость, и у фреймворка не будет возможности узнать, что вы это сделали, и не стоит, даже если вы найдете обходной путь для этого.

Пример:

const baseRefInterceptorSpyObj = jasmine.createSpyObj('BaseRefInterceptor', ['methodA']);
TestBed.configureTestingModule({
  imports: [HttpClientTestingModule, HttpClientModule],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useValue: baseRefInterceptorSpyObj
    }
  ]
})

Проверьте для получения дополнительной информации здесь о шпионах и SpyObj

...