Javascript 如何使用jest和Ezyme测试功能组件并获得全覆盖报告

Javascript 如何使用jest和Ezyme测试功能组件并获得全覆盖报告,javascript,jestjs,enzyme,Javascript,Jestjs,Enzyme,我试图得到一份全面的报告,并试图涵盖我的React项目的所有单元测试, 我知道这只是为了得到一份100%的完整报告,我可以不用它,但我想知道是否有什么方法可以覆盖证监会的所有测试,以获得100%的覆盖率报告 这是我的组件: import React, { useEffect } from "react"; import { connect } from "react-redux"; import { createStructuredSelector } f

我试图得到一份全面的报告,并试图涵盖我的React项目的所有单元测试, 我知道这只是为了得到一份100%的完整报告,我可以不用它,但我想知道是否有什么方法可以覆盖证监会的所有测试,以获得100%的覆盖率报告

这是我的组件:

import React, { useEffect } from "react";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";

///Components
import UserForm from "../../components/user-form/user-form.component";

//Actions
import { getUserStartActionable, updateUserStart  } from "../../redux/admin-user/admin-user.actions";

//Selector
import { selectGetUser } from "../../redux/admin-user/admin-user.select";

import { SpinnerLoading } from "../../utils/styles.utils";

import {
  WrapContainer,
  UserBody,
  UserHeader,
  UserFooter,
} from "./update-user.styles";

/***
 * Componente que renderiza la página para realizar
 * el registro de usuarios pacientes
 * @param {Object} state
 * @param {Function} createUser
 * @return {Component} RegisterUsersPage
 */
export const UpdateUser = ({ match, getUser, patientState }) => {

  const fetchStart = () => {getUser(match.params.patientId)};
      

  useEffect(fetchStart, []);

  return (
    <WrapContainer>
      <UserHeader>
        <h3>Actualizar Usuario</h3>
      </UserHeader>
      <UserBody>
        {patientState.user ? (
          <UserForm user={patientState.user} type="UPDATE" />
        ) : (
          <SpinnerLoading text="Cargando información" />
        )}
      </UserBody>
      <UserFooter></UserFooter>
    </WrapContainer>
  );
};

//Selector de estados
const mapStateToProps = createStructuredSelector({
  patientState: selectGetUser,
});

//Despachador de acciones
const mapDispatchToProps = (dispatch) => ({
  getUser: (user) => dispatch(getUserStartActionable(user)),
});

export default connect(mapStateToProps, mapDispatchToProps)(UpdateUser);

我的测试:

describe("<UpdateUser />", () => {
  let wrapper;

  beforeEach(() => {
    
    wrapper = shallow(<UpdateUser />);
  });

  it("should render the RegisterUsers Page", () => {
    expect(wrapper).toMatchSnapshot();
  });

  
});
描述(“,()=”>{
让包装纸;
在每个之前(()=>{
包装器=浅();
});
它(“应该呈现RegisterUsers页面”,()=>{
expect(wrapper.toMatchSnapshot();
});
});
那么,我如何涵盖派遣getUser


非常感谢这是一种测试redux操作的方法:

import { setResults } from '...';

it('setResults action works as expected', () => {
    const results = ['sample result1',  'sample result2'];
    const expectedAction = {
        type: actions.SET_RESULTS,
        data: results
    };
    expect(setResults(results)).toEqual(expectedAction);
});

这是测试redux减速器的一种方法:

import { setResults } from '...';
import { setResultsReducer } from '...';

it('returns state with detailedResult value when setDetailedResult(detailedResult) ' +
        'action has been called', () => {
    const resultsValue = ['sample result1', 'sample result2'];
    expect(setResultsReducer([], setResults(resultsValue)))
            .toEqual({results: resultsValue});
});
import { setResults } from '...';
import { setResultsReducer } from '...';

it('returns state with detailedResult value when setDetailedResult(detailedResult) ' +
        'action has been called', () => {
    const resultsValue = ['sample result1', 'sample result2'];
    expect(setResultsReducer([], setResults(resultsValue)))
            .toEqual({results: resultsValue});
});