将道具发送到Jact单元测试的React组件

时间:2016-11-18 11:53:57

标签: unit-testing reactjs jestjs enzyme

在组件的渲染部分中,我有以下div:

<div className="col-sm-8" >
<input ref='full_link' className="formctrl" name='full_link' type='text'
value={browser.getURL(this.props.params.id)} />
</div>

要为此组件编写测试单元,我尝试浅显示它(const component = shallow(<myComponent />);)并返回此错误:

TypeError: Cannot read property 'id' of undefined

所以我需要在测试中将这个道具发送给我的组件。如何将idthis.props.params.id发送到浅层渲染?

1 个答案:

答案 0 :(得分:6)

只需像使用组件时通常那样传递道具:

const component = shallow(<myComponent params={{ id: 1 }} />)

别忘了JSX只是一种更好的方式:

React.createElement(MyComponent, { params: { id: 1 } });

注意:您调用了组件myComponent,但在JSX中,用户定义的组件名称应以大写字母(MyComponent)开头,而#34; normal&#34;元素(例如div)以小写字母开头。