Должен ли я написать модульный тест для простого взаимодействия с RxJS - PullRequest
0 голосов
/ 28 марта 2019

Допустим, у нас есть простой класс, который генерирует новое событие для субъекта RxJS в событии window.resize.Не обращай внимания, что, возможно, это слишком сложно.Ключевым моментом является то, что этот класс генерирует какое-то событие.

        export class ResizeService {
          private resizeSubject = new Subject();

          public onResize(): Observable<Window> {
            return this.resizeSubject.asObservable();
          }

          constructor(private eventManager: EventManager) {
            this.eventManager.addGlobalEventListener('window', 'resize', (e) => {
              this.resizeObject.next(<Window>event.target)   
            })
          }

          private onResize(event: UIEvent) {
            this.resizeObject.next(<Window>event.target);
          }
        }

Вопрос в том, говоря о модульных тестах для этого класса, следует ли нам проверять, действительно ли будет получено новое событие, которое мы передаем объекту RxJS?клиентом, который вызвал метод onResize.Примерно так:

it('should emit a value', fakeAsync(() => {
     let subscriptionWorks = false;
     fireWindowResizeEvent(new Event({width: 600; height: 400});
     resizeService.onResize().subscribe(() => subscriptionWorks = true);
     expect(subscriptionWorks).toBeTruthy();
  })
)

А потом, если какой-нибудь разработчик изменит метод ResizeMethod на этот, тест провалится:

public onResize(): Observable<Window> {
  return this.resizeSubject.asObservable().skip(10);
}

1 Ответ

0 голосов
/ 28 марта 2019

То, что вы описываете, на самом деле является интеграционным тестом между вашим ResizeService и вашим клиентом. Так что нет, ты не. Нет необходимости в модульном тестировании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...