Javascript 如何使用jest和Ezyme测试功能组件并获得全覆盖报告
我试图得到一份全面的报告,并试图涵盖我的React项目的所有单元测试, 我知道这只是为了得到一份100%的完整报告,我可以不用它,但我想知道是否有什么方法可以覆盖证监会的所有测试,以获得100%的覆盖率报告 这是我的组件: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
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});
});