试图运行用于以下内容的单元测试:这里是一块代码的:
renderAdvancedColumns = () => {
let rules = this.props.selectedFormJSON ? this.props.selectedFormJSON.FORM_RULE : [];
let inner = [];
if(rules.length !== 0) {
inner = rules.map((rule, i) => { //LINE GIVING ERROR
return (
<div className={i===0? 'settings-field first-form-field' : 'settings-field'}>
<div className='settings-label'>
{rule.Event}
<div
className={this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.HttpMethod !== 'POST' &&
this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.HttpMethod !== 'PATCH' ?
'tran-button specify-body-button disabled' : 'tran-button specify-body-button'}
disabled={this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.HttpMethod === 'GET'}
onClick={()=>{this.setState({specifyBodyModalOpen: true})}}>
Specify Body
</div>
</div>
<input className='settings-input' value={this.props.selectedFormJSON.FORM_RULE[i].FORM_OPERATION.Endpoint || ''} onChange={(e) => {this.updateFORMOPERATION(i, 'Endpoint', e.target.value)}} />
我通常开始我的测试文件,并确保他们所有的道具正确呈现。但不确定为什么这是阻塞:内= rules.map((规则,I)=> {
这是我如何申报this.props
const baseProps = {
selectedFormJSON :{
Subform:{},
SubformFilter:{},
OverlayMapper:{},
Name:{},
Form_UID:{},
FORM_RULE:{
FORM_OPERATION:{
Endpoint:{},
HttpMethod:{},
},
},
Describe('FormSettings ', () => {
let wrapper;
let tree;
it('should render using all of the props', () => {
tree = renderer.create(<BrowserRouter><FormSettings {...baseProps} />
</BrowserRouter>)
let treeJson = tree.toJSON()
expect(treeJson).toMatchSnapshot();
tree.unmount()
});
selectedFormJSON.FORM_RULE是一个对象
你不能在对象上使用地图。