我如何用玩笑模拟重新选择功能?

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

我尝试测试我的

saga
,但测试时遇到一些问题
select

我想从

createSelector
嘲笑
reselect
,但我不能这样做,因为我有这个错误:

Cannot read property \'module\' of undefined

我的重新选择:

//R - is ramda

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

我的传奇:

//module gives me error because selectFilters returns undefined

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

jestjs redux-saga reselect
2个回答
1
投票

您必须将选择器的引用传递给

select
效果。在您的传奇中,您实际上是在调用选择器,然后传递返回值。如果你做得正确,你就不必模拟选择器。

像这样修改您的代码以修复错误:

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

0
投票

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)
})
© www.soinside.com 2019 - 2024. All rights reserved.