尝试运行测试,我的功能并没有根据我的情况返回我的预期。不确定我是否正确应用条件
这是功能:
renderColumnDropdown = () => {
if (this.props.columnIdList != undefined) {
let columnOptions = Object.keys(this.props.columnIdList).map(key => {
switch (key) {
case 'sort':
return false
case 'filters':
return false
})
return (
default:
return (
<option value={key} key={key}>{this.props.columnIdList[key]}</option>
)
return (
<select value={this.state.column} name='column' id='filter-column' onChange={this.handleChange} defaultValue={this.props.defaultData != null ? this.props.defaultData.column : 'default'}>
{columnOptions}
</select>
)
以下是我到目前为止测试的内容:使用Jest和酶进行React JS
it('Test renderColumnDropdown method',() => {
wrapper.setProps({
columnIdList:[],
columnOptions:[{
case:'sort'
}]
})
wrapper.update();
expect(wrapper.instance().renderColumnDropdown({columnOptions:[{case:""}]})).toEqual();
});
我希望返回一条消息,说明等于假,但现在正在返回“
什么可以调整我的道具,以确保我可以测试每个案例场景
renderColumnDropdown
迭代columnIdList
道具,而不是columnOptions
。
它可能应该是:
wrapper.setProps({
columnIdList:[{
case:'sort'
}]
})
它也不接受像renderColumnDropdown({columnOptions:[{case:""}]})
这样的论点
该函数返回React元素,它们可以呈现:
const columnsWrapper = shallow(wrapper.instance().renderColumnDropdown());
然后可以断言包装器是否存在选项:
expect(columnsWrapper.find('select').dive().find('option')).to.have.lengthOf(0);