要在React中测试数组常量的大小

问题描述 投票:0回答:1

我正在使用酶,现在我在主文件中有一个常量,我想测试其大小,但不确定如何使用酶或开玩笑的方法。

const menuItems = [
  {
    id: "loginID",
    name: "Login",
    link: "/",
  },
  {
    id: "eventListID",
    name: "Event List",
    link: "/eventlist",
  },
  {
    id: "listID",
    name: "List",
    link: "/list",
  },
];

我在Google上看过,但想知道是否可以在我的代码中引用menuItems吗?我有一个菜单,当打开时会调用menuItems const并在那里显示值

在我的测试文件中,我尝试过:

it("renders three options when menu is active", () => {
  const wrapper = mount(<EventPage />);
  wrapper.setState({ active: true });
  expect(wrapper.find(menuItem).length).toBe(3);
});

但是很明显那是行不通的。任何帮助都会很棒

编辑:

这里是相关的EventPage代码:

state = {
menuOpen: false,
  };

toggleMenu = (e) => {
e.preventDefault();
this.setState({
  menuOpen: !this.state.menuOpen,
});
   };

       <Menu
        id="menu1"
        open={this.state.menuOpen}
        menuText="Menu"
        items={menuItems}
        //toggleMenu opens menu side panel if Menu is clicked
        handleMenuToggle={this.toggleMenu}
        data-testid="toggleMenu"
      >
arrays reactjs testing jestjs enzyme
1个回答
0
投票

您可以找到渲染的菜单,然后仅检查其items属性的长度

假设有一个Menu

expect(wrapper.find(Menu).at(0).props().items.length).toBe(3)
© www.soinside.com 2019 - 2024. All rights reserved.