我是React&的新手Redux 和我在我正在处理的模块中有几个函数,
function showDialogAction(): Action {
return {
type : SHOW_DIALOG
};
}
function showDialog() {
return (dispatch : (action : Action) => void) => {
dispatch(showDialogAction());
};
}
现在我需要为showDialog()
函数编写单元测试。我仍然很难理解它究竟是做什么的。是returning a function that accepts Action and returns void ?? Or ...
真的很感激,如果有人能解释它的工作原理以及任何测试它的建议。
答案 0 :(得分:2)
它返回一个函数,该函数将dispatch
函数作为参数,并使用showDialogAction
的结果调用它。
因此,在dispatch : (action : Action) => void
类型的表单中,dispatch
是一个函数()=>
,它获取来自类型action
的参数Action
( action : Action
)并且不返回任何内容(void
)
最简单的测试方法是使用dispatch
的间谍:
const dispatch = jest.fn()
showDialog()(dispatch)
expect(dispatch).toHaveBeenCalledWith({type : 'SHOW_DIALOG'})