javascript - 酶模拟返回零节点
问题描述
我正在使用 Jest 和 Enzyme 来测试我的反应组件。其中一项测试如下所示:
import DropDown from './DropdDown';
import SelectButton from './SelectButton';
import { mount } from "enzyme";
describe('Test Dropdown component', () => {
it('Check if handleSubmit is called on click', () => {
const wrapper = mount(
<DropDown
data={dropdDownData}
/>);
expect(wrapper.contains(SelectButton)).toBe(true); // passes
wrapper.find(SelectButton).at(0).simulate('click');
})
})
运行上述测试时出现以下错误:
Method “simulate” is meant to be run on 1 node. 0 found instead.
如果SelectButton
存在于wrapper
,那么为什么在下一条语句中找不到节点?
可能需要注意的是DropDown
renders SelectWrapper
,它又会渲染SelectButton
. 但这在我使用时不应该有所作为mount
?
解决方案
wrapper.find(SelectButton).at(1)
是一个从零开始的集合,如果集合包含零个或一个元素,.at(1)将返回一个空包装器。.at(0)应该可以工作。
推荐阅读
- kubernetes - 为什么“kubectl get”的 YAML 与 GKE 中的“kubectl apply”的 YAML 如此不同?
- r - 有没有办法创建从现有点向外辐射的栅格地图?
- java - JNPM 如何影响 Http-Requests?
- python - 为具有相同内容的不同文件创建两个具有相同哈希的 zip
- linux - 用于 NGINX 服务网格的 Grafana Loki 仪表板“未能升级旧查询数据源命名未找到”
- sharepoint - 在 Sharepoint 的列中添加新类别
- typescript - 与输入和输出相同的泛型类型
- android - 是否可以在 gradle 中创建另一个(构建 APK(s))文件路径?
- api - 使用“查询”http api 后获取 {"code":"unauthorized","message":"unauthorized access"}
- python - 显示图像仅在第一次加载时有效,而不是在更改图像后