如何在Jest中测试功能组件中的回调函数

问题描述 投票:1回答:1

如果我删除回调()=>测试是否成功完成,但是我需要此回调来实现功能

Component

const Slider = ({slideSelected, slides}) => {
  const slideClicked = slide => () => { // can't test this
    slideSelected(slide);
  };

  const renderSlide = item => (
    <Slide
      slideClicked={slideClicked}
      item={item}
    />
  );

  return (
    <Carousel
      data={slides}
      renderItem={renderSlide}
    />
  );
};

test

const slideSelectedFunc = jest.fn();
wrapper.setProps({
  slides: [{ title: 'hello' }],
  slideSelected: slideSelectedFunc,
})
const Item = sliderShallowWrapper.find('Carousel').prop('renderItem');
const itemShallowWrapper = shallow(<Item item={[{ title: 'hello' }]} />);
itemShallowWrapper.props().slideClicked();
expect(slideSelectedFunc).toHaveBeenCalled(); // error

版本笑话24.9

javascript reactjs react-native jestjs enzyme
1个回答
0
投票

slideClicked不是您商品的道具,您需要先找到幻灯片,然后您才能获得正确的道具。

© www.soinside.com 2019 - 2024. All rights reserved.