Шпионить за методами Observable subscribe () и add () в модульном тесте Angular

У меня есть метод в моем testComponent, который возвращает наблюдаемый объект, на который подписан и после того, как отписался от подписки, затем он запускает код в .add () (т.е. когда подписка была отменена)

Как мне следить за этим методом и наблюдать за действиями, происходящими при вызове метода подписки и при отмене подписки на метод add (). Спасибо

Вот пример кода

const loading; 
const done; 
const error; 

onClick() {
this.loading = true;  
this.myService.processData(someValues)
.subscribe(
    result => {
        this.done = true; 
     },
    error => {
        this.error = true; 
     } )
.add(() => { this.loading = false })
}

Мне нужен способ наблюдать за тем, что происходит в блоках subscribe () и add ().


person Johnniexson    schedule 11.11.2019    source источник
comment
stackoverflow.com/questions/46242418/   -  person Eldar    schedule 11.11.2019


Ответы (1)


Ваш «испытуемый» - это сам метод.

вы его вызываете, а потом проверяете результат.

Из того, что я вижу, результат, о котором вы должны позаботиться, заключается в том, будет ли изменен определенный «косвенный вывод», то есть все, что указано в this..

Итак, это ваш результат, и он вызван определенным вводом.

В случае результата вам нужно «следующее» новое значение из Observable, за которым вы должны следить, используя автошпионы жасмина.

В случае ошибки то же самое - просто вызовите throwWith() на наблюдаемом шпионском объекте (опять же, используя jasmine-auto-spies).

Что касается добавления, из этого кода кажется, что ничего не вызывает метод unsubscribe в подписке, поэтому в этом случае логика добавления никогда не будет вызвана.

Вам нужно как-то запустить это действие в вашем коде, чтобы протестировать его (возможно, на ngOnDestory

person Shai Reznik - HiRez.io    schedule 11.11.2019