【问题标题】:Cannot destructure property trouble in enzyme?不能解构酶的性质问题?
【发布时间】:2022-01-16 09:33:30
【问题描述】:

当我尝试进行测试时

import React from "react";
import {EventsLoadingContext} from "../../../src/components/data-admin/context/EventsLoadingContext";
import DataAdmin from "../../../src/components/data-admin/DataAdmin";
import { configure, mount, shallow } from "enzyme";
import Adapter from 'enzyme-adapter-react-16';

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

it("should render DataAdmin component", () => {
    const component = shallow(<DataAdmin />, {context: EventsLoadingContext});
    const dataTable = component.find(".table-container");
    expect(dataTable.length).toBe(1);
});

并且遇到这样的麻烦:

在我拥有的上下文组件中:

export const EventsLoadingContext = createContext();

export const WithEventsLoadingContext = ({children}) => {
  const [backendEvents, setBackendEvents] = useState([]);
  const [integrationEvents, setIntegrationEvents] = useState([]);
  const [allEvents, setAllEvents] = useState([]);

// ...

  const value = {
    preparedEvents,
    dropdownItems,
    dropdownClicked, setDropdownClicked,
    loading,
    updatedChanges, setUpdatedChanges
  };

  return (
    <EventsLoadingContext.Provider value = {value}>
        {children}
    </EventsLoadingContext.Provider>
  )
};

在我的 DataAdmin 组件中:

const DataAdmin = () => {
  const {
    preparedEvents, 
    dropdownItems,
    dropdownClicked, setDropdownClicked,
    loading,
    updatedChanges, setUpdatedChanges
  } = useContext(EventsLoadingContext);

等等。 那么我该如何解决呢? 那么我该如何解决呢?

【问题讨论】:

    标签: reactjs enzyme


    【解决方案1】:

    似乎您应该在options 参数中为shallow 方法传递EventsLoadingContext 上下文。见shallow documentation

    【讨论】:

    • 试过 const component = shallow(, {context: EventsLoadingContext});不幸的是,这不起作用
    猜你喜欢
    • 1970-01-01
    • 2011-12-21
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 2011-06-05
    • 2013-05-17
    相关资源
    最近更新 更多