2016-11-07 43 views
0

這是我的組件:如何訪問到道具指派的分量酶

const Cmp = (props) => (
    <List> 
    <ListItem primaryText='test' leftCheckbox={<Checkbox onCheck={props.onCheck} />} /> 
    </List> 
); 

我要測試的複選框的檢查。這是我的測試:

it('test', (done) => { 
    const handleCheck =() => { 
    done(); 
    } 

    const wrapper = shallow(<Cmp onCheck={handleCheck} />); 
    wrapper.find('the checkbox').simulate('check'); 
}); 

如何找到複選框?

回答

0

你需要找到那麼ListItem元素得到prop並在其上調用simulate

it('test', (done) => { 
    const handleCheck =() => { 
    done(); 
    } 

    const wrapper = shallow(<Cmp onCheck={handleCheck} />); 
    const checkBox = shallow(wrapper.find('ListItem').first().prop('leftCheckbox')()) 
    checkbox.simulate('check'); 
}); 
+0

我試過了。不能用'TypeError:checkbox.simulate不是函數'錯誤# – alisabzevari

+0

你可以登錄'checkBox',我假設它還沒有渲染,所以也許你必須像這樣寫'shallow(checkBox).simulate('檢查')' –