javascript - enzyme hasClass 返回 false 是错误的

标签 javascript reactjs jestjs enzyme

我有以下 React 组件:

const FeatureAccess = ({ value }) => {
  let liClass = `FeatureAccessList-item FeatureAccessList-item--${value}`

  return (
    <li class={liClass}>
      <label for={`user_member_permission_ids_${value}`}>
        <input
          name='user[member_permission_ids][]'
          id={`user_member_permission_ids_${value}`}
          value={value}
        />
      </label>
    </li>
  )
}

li 元素有两个类:

FeatureAccessList-item
FeatureAccessList-item--${value}

但是我的测试总是失败,Enzyme 出于某种原因没有正确断言它:

// wrapper = mount(<FeatureAccess {...props} />)

it('should have the correct class depending on "value"', () => {
  const value = 'Spider-sense'
  wrapper.setProps({ value })

  // Expected: true, Received: false
  expect(wrapper.find('li').hasClass(`FeatureAccessList-item--${value}`)).toBe(true)
})

这没有任何意义,因为如果我记录 wrapper.find('li') 的实际结果,这就是我得到的:

  console.log spec/javascripts/Users/components/FeatureAccess.spec.jsx:46

    <li class="FeatureAccessList-item FeatureAccessList-item--Spider-sense">
      <label for="user_member_permission_ids_Spider-sense">
        <input class="user_member_permission_ids " name="user[member_permission_ids][]" id="user_member_permission_ids_Spider-sense" value="Spider-sense" type="checkbox" checked={false} onChange={[Function: onChange]} />
      </label>
    </li>

类(class)就在那里!这里发生了什么?

我还尝试使用 find(`.FeatureAccessList-item--${value}`).exist() 并且它也返回 false...

最佳答案

您应该使用 className 而不是 class

https://reactjs.org/docs/introducing-jsx.html

Since JSX is closer to JavaScript than to HTML, React DOM uses camelCase property naming convention instead of HTML attribute names.

For example, class becomes className in JSX, and tabindex becomes tabIndex.

关于javascript - enzyme hasClass 返回 false 是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54459683/

相关文章:

javascript - <picture/> 元素 onLoad 没有持续触发

reactjs - 监视 redux 调度方法

mocking - Jest 模拟全局 navigator.onLine

javascript - 第二行无法在 php 中更新

javascript - 在react中使用json创建带有表标题的表

javascript - 触发上传文件时如何保持全屏?

javascript - 在 React.js 中,我试图在图像之上的叠加层之上添加文本和其他一些元素

javascript - 使用 react-router v4、Jest 和 Enzyme 测试组件

javascript - 防止链接的默认行为

javascript - React Router 嵌套路由不渲染