2017-08-15 26 views
0

我想淺測試我的組件,並且我知道淺測試只測試一個深度。我的問題是,我收到警告是因爲我的組件需要由mapStateToProps和mapDispatchToProps收到的道具。這讓我想知道如何正確地將這些道具發送到我的淺呈現組件,而不會重複方法。 我使用笑話和酶。淺測試組件,抱怨從mapStateToProps和mapDispatchToProps得到所需道具

+0

如果您有清晰的演示文稿/容器分離,您可以輕鬆地單獨測試演示文稿組件(在這種情況下,我假設所有動作都可以是簡單的模擬函數)。將一些代碼添加到問題中。 –

回答

2

讓我們把你的組件ComponentA包裹在HOC的陣營 - 終極版(假設你正在使用它,因爲你的問題是mapStateToPropsmapDispatchToPropsconnect。 用於測試該組件的傳統方法是:

  1. 獲取包裹的組件:connect有一個名爲WrappedComponent靜態屬性,所以你把它弄出來是這樣的:

    const ExtractedComponent = ComponentA.WrappedComponent; 
    
  2. 模擬功能和道具並將其像普通道具一樣傳遞到提取的組件中:

    const wrapper = mount(<ExtractedComponent connectFunctionA={mockA} ... />); 
    
  3. 測試它像正常的組件! :)