Reactjs 测试mapDispatchToProps的最佳方法
我正在编写测试mapDispatchToProps的测试,包括调度 这是我的地图Reactjs 测试mapDispatchToProps的最佳方法,reactjs,redux,jestjs,redux-mock-store,Reactjs,Redux,Jestjs,Redux Mock Store,我正在编写测试mapDispatchToProps的测试,包括调度 这是我的地图 export const mapDispatchToProps = dispatch => { return { getListOfYears: url => dispatch(getListOfYears(url)) }; }; 分派的方法如下所示 export const getListOfYears = url =&
export const mapDispatchToProps = dispatch => {
return {
getListOfYears: url => dispatch(getListOfYears(url))
};
};
分派的方法如下所示
export const getListOfYears = url => {
return getService(url, { actions: getActions(actionNames.GET_LIST_OF_YEARS), shouldRequest });
};
export const shouldRequest = () => {
return true;
};
export const requestActionCreator = actionName => () => ({
type: getRequestActionType(actionName)
});
export const failureActionCreator = actionName => error => ({
type: getFailureActionType(actionName),
payLoad: error
});
export const successActionCreator = actionName => response => {
if (response && response.data && response.status === 200) {
return {
type: getSuccessActionType(actionName),
payLoad: response.data
};
}
return {
type: getFailureActionType(actionName),
payLoad: response
};
};
export const getActions = actionName => ({
requestAction: requestActionCreator(actionName),
successAction: successActionCreator(actionName),
failureAction: failureActionCreator(actionName)
});
export const getRequestActionType = actionName => `${actionName}_REQUEST`;
export const getSuccessActionType = actionName => `${actionName}_SUCCESS`;
export const getFailureActionType = actionName => `${actionName}_FAILURE`;
这是我开玩笑的测试用例
it('dispatches action getListOfYears', () => {
mapDispatchToProps(dispatch).getListOfYears(mockUrl);
expect(dispatch.mock.calls[0][0]).toEqual(actions.getListOfYears(mockUrl))
});
dispatch.mock.calls[0][0]为我提供了一个匿名函数。请给出测试方法的建议
谢谢。嗯。。。为什么需要测试mDTP?或者更好的是为什么要使用它,为什么不在连接组件时使用注入的
dispatch
?这样就少了样板文件。你能给我举一个连接时注入调度的例子吗?你不需要通过mapDispatchToProps,导出默认连接(MapStateTrops)(MyComponent)
。组件内部将有this.props.dispatch
。当你连接它时,它已经被注入了。。。为什么需要测试mDTP?或者更好的是为什么要使用它,为什么不在连接组件时使用注入的dispatch
?这样就少了样板文件。你能给我举一个连接时注入调度的例子吗?你不需要通过mapDispatchToProps,导出默认连接(MapStateTrops)(MyComponent)
。组件内部将有this.props.dispatch
。当你连接它时,它已经被注入了。