如何用酶,分支和伴随酶重新组合的处理器中的处理程序测试处理程序



我是酶测试的新手,我已经制作了一个组件:

import React from 'react';
import {
  compose,
  withState,
  withHandlers,
  branch,
  pure,
  renderComponent,
} from 'recompose';
import Fields from './components/Fields';
import Flow from './components/Flow';
export const MODE = {
  preview: 'preview',
  edit: 'edit',
};
const inEditMode = ({ mode }) => mode === MODE.edit;
const Component = branch(
  inEditMode,
  renderComponent(Fields),
  renderComponent(Flow),
)(Flow);
const Tab = pure(props => <Component {...props} />);
export default compose(
  withState('mode', 'changeMode', props => {
    const path = props.path;
    return props.path ? MODE.preview : MODE.edit;
  }),
  withHandlers({
    changeMode: ({ changeMode }) => () => changeMode(currentState => currentState === MODE.preview ? MODE.edit : MODE.preview),
    onApprovalChange: ({ onAction, entity }) => data => {
      onAction({ ...data, status: 'UPDATED' }, data.id);
    },
  }),
)(Tab);

在上面的组件中,我想测试以下内容:

  1. Component

  2. 的渲染
  3. inEditMode组件的功能

  4. withStatewithHandlers中存在的处理程序

  5. branch重新组合的实用性(我真的不认为我需要检查它,因为它们可能已经存在,但假设我想测试此类功能)

我可以在stackoverflow上找到有关测试的文档,但没有一个资源可以提供总体想法。

测试组件时,您应仅测试组件,而不是容器(函数包装它),因为它们是高阶组件

如果要从recompose测试功能,请查看自己的测试:https://github.com/acdlite/recompose/recompose/blob/master/master/src/packages/recompose/recompose/recompose/precompose/precompose/precompose/precompose/precompose/precompose/testrong> Testspestspem-test.js只是基于此写自己的。

至于您的组件,请确保导出各个零件并测试它们。在您的情况下,将是功能组件inEditMode

export const inEditMode = ({ mode }) => mode === MODE.edit;

这就是您需要在此组件上测试的全部。

最新更新