我有一个带有ScrollView
子组件的react native组件。我想知道子组件方法是否在不引发异常的情况下被成功调用。
我已经尝试使用mount
方法来测试我的组件,但是它仍然为子组件返回一个模拟方法。
我的组件看起来像这样:
class CustomModal extends React.PureComponent<Props, State> {
scrollTo = (point: any) => {
if (this.scrollViewRef) {
this.scrollViewRef.scrollTo(point);
}
};
setScrollViewRef = (ref: any) => {
this.scrollViewRef = ref;
};
render() {
return (
<Modal>
<View>
<ScrollView
ref={this.setScrollViewRef}>
{children}
</ScrollView>
</View>
</Modal>
)
}
}
我的测试是:
describe('when rendering the ScrollView', () => {
beforeEach(() => {
component = mount(
<CustomModal></CustomModal>
);
});
it('calls scrollTo successfully', () => {
expect(() => {
component.instance().scrollTo(10);
}).not.toThrow();
});
});
当我实际运行测试时,它实际上并未调用scrollTo
组件的ScrollView
方法,而是调用了模拟方法。我实际上如何使用玩笑来测试是否成功调用了库方法并且没有崩溃?