Тестовый код внутри подписки rxjs при использовании жасминовых шариков - PullRequest
0 голосов
/ 18 апреля 2019

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

function foo(someStream$: Observable<number>) {
  someStream$.pipe(
    map((x) => x + 3),
  ).subscribe((result) => {
    SomeService.someFunc(result)
  })
}

Например, я хочу убедиться, что someFunc() вызывается с result. Я думаю, что я должен быть в состоянии сделать что-то вроде

const someStream$ = cold('-a--', { a: 5 })
const someFuncSpy = spyOn(SomeService, 'someFunc')
foo(someStream$)

expect(someFuncSpy).toHaveBeenCalledWith(8)

Проблема в том, что мне скажут, что someFunc никогда не вызывали. Я не хочу разделить поток и subscribe на отдельные функции.

1 Ответ

0 голосов
/ 18 апреля 2019

вы можете использовать Rx.Observable.of(5) вместо cold() для пропуска числа через наблюдаемое

...