我有一个有条件渲染的 react 组件(如果数据被获取则渲染,否则返回 null),我想用jest & enzyme
. 我遇到的问题是我想测试类中的方法之一,但.instance()
一直返回 null,因此它不允许我测试实例。
我的代码看起来像这样
export default class MyComponent extends React.Component<Props, State> {
componentDidMount() {
this.props.fetchData.then(() =>
this.setState({ loaded: true });
);
}
methodThatIWantToTest() {
//do some stuff here
}
render() {
if (this.loaded) {
// render stuff here
} else {
return null;
}
}
}
在测试中我想测试
describe('myComponent', () => {
it('should do some stuff', () => {
const shallowWrapper = shallow(<MyComponent {...props}/>);
const method = shallowWrapper.instance().methodThatIWantToTest();
....such and such
});
});
但它看起来MyComponent
只返回 null 所以也shallowWrapper.instance()
返回 null 。我尝试了shallowWrapper.update()
很多其他的东西,但它似乎根本不想渲染..如何等待我的组件更新然后开始expect
声明?
有没有人和我有类似的问题并且知道如何解决这个问题?