如何理解和使用Jest对React-Redux函数进行单元测试

时间:2017-08-30 06:59:16

标签: reactjs redux jestjs

我是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 ...

真的很感激,如果有人能解释它的工作原理以及任何测试它的建议。

1 个答案:

答案 0 :(得分:2)

它返回一个函数,该函数将dispatch函数作为参数,并使用showDialogAction的结果调用它。

因此,在dispatch : (action : Action) => void类型的表单中,dispatch是一个函数()=>,它获取来自类型action的参数Actionaction : Action)并且不返回任何内容(void

最简单的测试方法是使用dispatch的间谍:

const dispatch = jest.fn()
showDialog()(dispatch) 
expect(dispatch).toHaveBeenCalledWith({type : 'SHOW_DIALOG'})