我正在使用酶,现在我在主文件中有一个常量,我想测试其大小,但不确定如何使用酶或开玩笑的方法。
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"
>
您可以找到渲染的菜单,然后仅检查其items
属性的长度
假设有一个Menu
:
expect(wrapper.find(Menu).at(0).props().items.length).toBe(3)