2017-07-26 39 views
0

設置我的包裝如下:玩笑酶仿真值

const wrapper = shallow(<Uploads 
     availableTemplates={[]} 
     filters={{ commodity: '' }} 
     actions={{ 
     SetFilter: (e) => { wrapper.setProps({ filters: e }); } 
     }} 
    />); 

下測試的目的是要改變假爲真從它的默認「檢查」的無線電值:

const input = wrapper.find('input').at(0); 

    input.simulate('change', { target: input.props() }); 
    expect(wrapper.find('input').at(0).node.props.checked).toEqual(true); 

事不宜遲,這裏是我的問題: 當我創建低於這個測試來檢查收音機的默認值(這應該是假的),我得到真正的回來。大概這是因爲我早已將它改變爲真。有沒有辦法將每次後續測試的輸入重置爲默認狀態?

expect(wrapper.find('input').at(0).node.props.checked).toEqual(false); 

當然,我可以將此測試移動到另一個之上,但我很好奇爲什麼會出現上述情況。

回答

0

原因上面似乎是我測試每次包裝的同一個實例。所以當我將一個值更改爲true時,它會在我的其餘測試中持續存在。爲了解決這個問題,我創建了一個getWrapper功能我稱之爲每次拿到包裝的一個新實例:

const getWrapper =() => { 
    const wrapper = shallow(<Uploads 
    availableTemplates={[]} 
    filters={{ commodity: '' }} 
    actions={{ 
     SetFilter: (e) => { wrapper.setProps({ filters: e }); } 
    }} 
    />); 
    return wrapper; 
}; 

在測試:

const wrapper = getWrapper();