reactjs - 测试函数返回不同的案例场景 - Jest 酶
问题描述
尝试运行测试并且我的函数没有根据我的情况返回我所期望的。不确定我是否正确应用条件
这是功能:
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 和酶 for React JS
it('Test renderColumnDropdown method',() => {
wrapper.setProps({
columnIdList:[],
columnOptions:[{
case:'sort'
}]
})
wrapper.update();
expect(wrapper.instance().renderColumnDropdown({columnOptions:[{case:""}]})).toEqual();
});
我希望返回一条消息,说等于 false,但现在正在返回“
什么可以调整我的道具以确保我可以测试每个案例场景
解决方案
renderColumnDropdown
迭代columnIdList
prop,而不是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);
推荐阅读
- c++ - 向量内类的成员函数,在向量重新分配时有效
- python - 由 FastCGI-stderr 从远程服务器上的 lighttpd 引发的 Python webapp IndexError;在本地执行正常
- java - 为什么 mToolbar 和 Toolbar 在 android studio 中不起作用
- ethereum - INFURA:发件人帐户无法识别
- json - 在 Azure 数据工厂中将多个文件合并为一个 JSON 文件
- python - 如何在互联网上部署 Bokeh 应用程序
- discord.js - 我的不和谐机器人的成员命令 - discord.js
- c# - 如何在 Xamarin.Forms 上调用 HTTP2
- xamarin - 从 UIWebView 迁移到 WKWebView 后性能显着下降
- swift - Distinct Pair sum swift