【问题标题】:React testing mock variable in functional component在功能组件中反应测试模拟变量
【发布时间】:2021-05-06 23:33:06
【问题描述】:

请帮忙。 我无法运行测试,因为在我的 util langProvider 中是丢弃测试的包。 我必须模拟 langProvider 函数或字符串变量。 我该怎么做?

import React, { ReactElement, useState } from 'react';
import langProvider from 'utils/langProvider';

import { HeaderStyled, DropDownStyled } from './styled';
import './style.scss';

function Header(props: any): ReactElement {
  const [state, setState] = useState({
    isDropDownOpened: false,
    isDrawerOpened: false,
  });

  const strings = langProvider(props.language, 'components.header');

  return (
    <HeaderStyled className="header">
      ...
    </HeaderStyled>
  );
}

const mapStateToProps = (state: any) => ({
  language: state.language,
});

export default connect(mapStateToProps)(Header);

我的测试文件

import { configure, shallow } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import React from 'react';
import Header from './index';

configure({ adapter: new Adapter() });

describe('<Header />', () => {
  const wrapper = shallow(<Header />);

  it('My test', () => {
    expect('').toEqual('Header');
  });
});

【问题讨论】:

  • 测试错误:测试套件无法运行错误:在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16) 处连接 ECONNREFUSED 127.0.0.1:80

标签: javascript reactjs typescript unit-testing jestjs


【解决方案1】:

不确定,但您可以尝试在 describe 函数之前插入您的测试文件,类似这样:

jest.mock("utils/langProvider", () => ({langProvider: ()=> []}));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多