如何使用多个可观察值而不是一个来覆盖选择器以便区分?

问题描述 投票:0回答:1

[我的效果是使用返回对象的选择器中的最新值,但是我想通过单元测试,以从仅检索一个选择器的选择器中加载多个可观察值。

 public uniqueMovies$ = createEffect(() =>
   this.actions$.pipe(
      ofType(loadSavedMovies),
      combineLastest(
          this.store.pipe(
              select(getSaveMoviesSelector),
              distinctUntilChanged((prev, curr) => prev.SKU === curr.SKU)
          )
      )
      switch(([_action, currentMovies]) => {
          return this.moviesServices.getUniqueData(currentMovies.SKU)
      }),
      map( movie => loadUniqueMovie(movie))
   )
 )

当前单元测试仅接受一个对象,我需要使用from来检索from [{SKU:'QMO3434O'},{SKU:'QMO3434O'},{SKU:'ZOP3434O'}]] >> 运算符,以便传递distinctUntilChanged

   mockStore.overrideSelector(getSaveMoviesSelector, { SKU: 'QMO3434O'} as CurrentMovie)
   moviesServicesSpy.getUniqueData.and.returnValue(of({ SKU: 'QMO3434O', name: 'Matrix' } as Movie))

   action$ = hot('a', {
     a: loadSavedMovies()
   })

   const exp = cold( 'z',  {
     z: loadUniqueMovie({ SKU: 'QMO3434O', name: 'Matrix' } as Movie)
   })

   expect(effect.uniqueMovies$).toBeObservable(exp)

从选择器中返回多个可观察值的更好方法是什么。

我有一种效果,它正在使用返回对象的选择器中的最新功能,但是我想通过单元测试,以从仅检索一个选择器的选择器中加载可观察的多个倍数。...

javascript angular unit-testing rxjs ngrx-effects
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.