2017-08-30 70 views
0

陣營 - 終極版功能我是新反應&終極版,我有一個模塊中的多個功能,這我的工作,如何理解和單元測試這跟玩笑

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

真的很感謝,如果任何人都可以解釋它是如何工作和任何建議來測試它。

回答

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'}) 
+0

謝謝你的解釋。你能解釋一下什麼是'dispatch:(action:Action)=> void',爲什麼有'action:Action'?可能會更新答覆 – prime

+1

更新爲類型的解釋 –

+0

知道了。 (Y)很好的解釋,謝謝:) – prime