尝试运行测试,我的函数没有返回基于我的情况的期望值。不确定我是否正确应用了条件
这是函数:
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>
)
到目前为止,这是我要进行的测试:将笑话和酶用于React JS
it('Test renderColumnDropdown method',() => {
wrapper.setProps({
columnIdList:[],
columnOptions:[{
case:'sort'
}]
})
wrapper.update();
expect(wrapper.instance().renderColumnDropdown({columnOptions:[{case:""}]})).toEqual();
});
我希望返回一条消息,该消息等于false,但是现在返回“
可以调整我的道具以确保可以测试每种情况的场景
答案 0 :(得分:2)
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);