您设置props
正确。问题是在您的特定情况下wrapper.prop()
返回。undefined
发生这种情况是因为实际上wrapper
不是<ActiveConversation />
,而是它返回的。因此,您的prop()
调用尝试从从返回的根节点获取prop
with键。messagesList
<ActiveConversation />
例如,如果<ActiveConversation />
组件呈现如下内容:
<div className='conversation'>
<ConversationRenderer
messagesList={this.props.messagesList}
activeConversation={this.props.activeConversation}
info={info? true: false}
/>
{info}
</div>
wrapper.prop('messagesList')
将尝试在此节点中查找 prop <div className='conversation'>
(不是子节点),并且由于没有,因此将返回undefined
.
为了通过测试<ActiveConversation />
,应该呈现如下内容:
<div
messagesList={this.props.messagesList}
className='conversation'
>
<ConversationRenderer
messagesList={this.props.messagesList}
activeConversation={this.props.activeConversation}
info={info? true: false}
/>
{info}
</div>
但我想这不是你想要的。
顺便说一句,但你的测试似乎毫无意义。它有什么意义?测试是否prop
设置了a?这都是关于react
功能的,留给 facebook 来测试 :)