简体   繁体   English

在功能组件中反应测试模拟变量

[英]React testing mock variable in functional component

Please help.请帮忙。 I cannot run test because in my util langProvider is package that drops tests.我无法运行测试,因为在我的 util langProvider 中 package 会丢弃测试。 I have to mock langProvider function or strings variable.我必须模拟 langProvider function 或字符串变量。 How I can do that?我怎么能这样做?

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);

My test file我的测试文件

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');
  });
});

not sure, but you can try to insert in your test file before describe function, something like that:不确定,但您可以尝试在describe function 之前插入测试文件,如下所示:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM