我如何用jest来模拟Reselect函数?

idfiyjo8  于 6个月前  发布在  Jest
关注(0)|答案(2)|浏览(46)

我试着测试我的saga和我有一些测试select的问题。
我想从reselect模拟createSelector,但我不能这样做,因为我有这个错误:
Cannot read property \'module\' of undefined
我的重新选择:

//R - is ramda

export const selectFilters = createSelector(R.path(['notification', 'filters']), (filters) => filters)

字符串
我的 Saga :

//module gives me error because selectFilters returns undefined

const {module, orderByDate} = yield select(selectors.selectFilters())

yyyllmsg

yyyllmsg1#

你必须通过select效果传递选择器的引用。在你的 Saga 中,你实际上是在调用选择器,然后传递返回值。如果你做得正确,你不必模仿选择器。
像这样修改你的代码来修复错误:

const {module, orderByDate} = yield select(selectors.selectFilters)

字符串

c90pui9n

c90pui9n2#

2种方式。
1.

jest.mock('bla/bla/selectors', () => ({
  selectFilters: jest.fn(() => anythingToReturn),
}));

字符串

import {selectFilters} from 'bla/bla/selectors'

jest.mock('bla/bla/selectors')

it('should ...', () => {
   (selectFilters as any).mockReturnValueOnce(anythingToReturn)
})

相关问题