javascript - Jest 和 Enzyme onClick 事件应该切换类 - 测试没有选择更新的包装器(??)
问题描述
我正在尝试测试一个包含树层次结构的组件。
树层次结构是用<ul/>
和<li/>
元素构建的。
我的树的最高级别没有隐藏,这意味着我可以li
在第一个元素下方看到我的各个元素ul
。但是,下一个嵌套ul
元素有一个名为的类myHiddenClass
,其中隐藏了该元素。当我单击li
它上面的元素时,它会myHiddenClass
在ul
元素上切换。
因此,树层次结构看起来像这样:
<ul>
<li onClick={(e) => unHideUl(e)}></li>
<ul className='myHiddenClass'>
<li></li>
...
</ul>
</ul>
该函数unHideUl
如下所示:
const unHideUl = (e) => {
e.stopPropagation()
e.target.nextSibling.classList.toggle('myHiddenClass')
}
我已经测试了这个onClick
事件,它应该会触发。显然,我还通过常规编译测试了这个功能,它完美无缺。
我的测试如下所示:
let wrapper
beforeEach(() => {
wrapper = mount(<MyComponent/>)
});
afterEach(() => {
wrapper.unmount();
})
test('Expect to be expanded', () => {
const item = wrapper.find('li').first()
item.simulate('click')
const uList = wrapper.find('ul').first().children().find('ul').first()
expect(uList.hasClass('myHiddenClass')).toBeFalsy()
})
console.log(wrapper.debug())
之后我尝试过像这样打印包装纸simulate('click)
,但在这里,我ul
的没有一个被myHiddenClass
删除。
显然,如果我能了解我在这里做错了什么,我将不胜感激 - 出于某种原因,我不禁想到我的包装器在unHideUl
切换课程后可能不会更新。
解决方案
推荐阅读
- java - 将 hive collect_set 查询迁移到 apache crunch
- php - 重定向到 Codeigniter 中的另一个控制器后会话数据丢失
- docker - 在 .net 核心应用程序中获取 Docker 容器 IP
- yii2 - 对用户密码散列 Yii2 使用不同的盐
- sql - TSQL 函数 新列的两个子字符串
- c# - 如何将 DataTable 移动到另一个 DataSet?
- typescript - ng2-file-upload 响应范围
- javascript - 在内部渲染多个反应组件
- 带按钮 onclick
- javascript - Django + Vue.js 导入模块
- c# - MySQL 8.0 concat 从 mediumtext 列返回 system.byte[]