tno*_*888 5 javascript mocha.js chai reactjs enzyme
我正在为组件编写测试以测试其功能之一,但出现错误:
ShallowWrapper can only wrap valid elements
组件文件如下—— Panel.jsx(简体):
class Panel extends Component {
static propTypes = {
...
};
static defaultProps = {
...
};
constructor(props) {
super(props);
...
this.makeConfigArray = this.makeConfigArray.bind(this);
this.filterSelected = this.filterSelected.bind(this);
}
makeConfigArray() {
...
}
filterSelected(filters) {
...
}
render() {
return (
<div>
<ReactFilterSentence
filters={this.makeConfigArray()}
label="Filter Page"
isPersistent
onChange={(...args) => this.filterSelected(args)}
/>
<span className="page-filter__config-form-separator" />
</div>
);
}
}
export default Panel;
Run Code Online (Sandbox Code Playgroud)
测试文件如下 -
panel-test.jsx:
import React from 'react';
import { expect } from 'chai';
import { shallow } from 'enzyme';
import Panel from '../../src/components/Panel.jsx';
const Enzyme = require('enzyme');
const Adapter = require('enzyme-adapter-react-15');
Enzyme.configure({ adapter: new Adapter() });
describe('<Panel /> component', () => {
let props;
const getPanelWrapper = () => shallow(<Panel {...props}/>);
it('should make regions filter query string', () => {
const regions =
{
"key":"region",
"value":
[
"Nordic > Nordic > Denmark",
"Nordic > Finland",
"Nordic > Norway",
"Nordic > Sweden"
]
};
const expected = "regions=DK+FI+NO+SE";
expect(getPanelWrapper().instance().makeRegionsQueryString(regions)).to.equal(expected);
});
});
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会发生这种情况将不胜感激!
小智 2
const getPanelWrapper = () => shallow(<Panel {...props}/>);
Run Code Online (Sandbox Code Playgroud)
应该:
const getPanelWrapper = shallow(<Panel {...props}/>);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4341 次 |
| 最近记录: |