我尝试测试我的
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())
您必须将选择器的引用传递给
select
效果。在您的传奇中,您实际上是在调用选择器,然后传递返回值。如果你做得正确,你就不必模拟选择器。
像这样修改您的代码以修复错误:
const {module, orderByDate} = yield select(selectors.selectFilters)
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)
})