测试是否成功调用了子组件方法

时间:2019-04-04 10:55:20

标签: react-native jestjs

我有一个带有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方法,而是调用了模拟方法。我实际上如何使用玩笑来测试是否成功调用了库方法并且没有崩溃?

0 个答案:

没有答案