首页 > 解决方案 > 由于调用 axios,无法用玩笑测试 React 组件

问题描述

我使用创建反应应用程序。我知道在测试组件时对 web api 进行异步调用不是一个好习惯,但我想这样做以检查 api 返回的所有数据是否正确。我不想嘲笑这个电话。我用 jest 和酵素进行测试,但我无法成功地用 axios 调用 api。我想这是由于测试的上下文,但我不知道如何设置东西以在测试模式下访问 xmlhttrequest。这是我的测试:

it('renders 10 results', (done) => {
  const wrapper = mount(<UserSearchBox />);

  const input = wrapper.find('.input-search');

  input.simulate('change', { target: { value: 'julien'} });


  setTimeout(async ()=>{
     await wrapper.update();
     console.log(wrapper.debug())
     expect(wrapper.find('.results-search').find('ul').children()).toHaveLength(10);
     done();
  },1000);

标签: reactjsjestjsaxiosenzymecreate-react-app

解决方案


推荐阅读