Reactjs 反应酶-测试特定属性的值

Reactjs 反应酶-测试特定属性的值,reactjs,enzyme,Reactjs,Enzyme,我的组成部分: 在我的测试中,我想检查我的组件是否包含具有特定url属性的组件,比如“/login” 问题是我不关心关键道具的值,它不应该是测试的一部分 如何测试这一点 提前谢谢。你可以查看你想要的道具。 你正在寻找的方法是最有可能的。 类似于下一个代码的东西应该可以做到这一点 const wrapper = shallow(<NavItems />) const nav = wrapper.shallow() expect(nav.findWhere(el => el.is

我的组成部分:

在我的测试中,我想检查我的组件是否包含具有特定url属性的组件,比如“/login”

问题是我不关心关键道具的值,它不应该是测试的一部分

如何测试这一点


提前谢谢。

你可以查看你想要的道具。 你正在寻找的方法是最有可能的。 类似于下一个代码的东西应该可以做到这一点

const wrapper = shallow(<NavItems />)
const nav = wrapper.shallow()

expect(nav.findWhere(el => el.is(NavItem) && el.prop('url') === '/login').length).toEqual(1)
所以这里的主要部分是expect,在这里您可以精确地检查您想要的内容。 不要忘记传递项目数组

有了mount,您可以避免多个shall,但不要忘记它的内存操作更繁重,并且将使用生命周期方法呈现整个react树

const wrapper = mount(<NavItems />);
expect(wrapper.find(NavItem).filterWhere((item) => {
  return item.prop('url') === '/login'
}).to.have.lengthOf(1);

这也适用于shallow

得到一个错误:方法“props”只能在单个节点上运行。4.取而代之。感谢您的反馈。更新。
const wrapper = mount(<NavItems />);
expect(wrapper.find(NavItem).filterWhere((item) => {
  return item.prop('url') === '/login'
}).to.have.lengthOf(1);