我目前正在尝试用笑话和酶的代码片段测试“ onOk”和“ onCancel”方法:
Modal.confirm({
title: 'Role Change',
content: `Change?`,
okText: 'Change',
onOk: method1,
onCancel: method2
})
这在组件中调用的帮助器方法中。我尝试等待组件更新,然后查询“确定”按钮,但酶似乎找不到它。当我在组件上执行debug()时,模态也不会显示。有没有什么好的方法可以监视这些方法,甚至一开始就调用它们?谢谢!
答案 0 :(得分:1)
我能够做到这一点的唯一方法是遵循 Ant 设计对他们自己的 Modal.confirm 的测试,这是我设法做到的
我有一个按钮可以触发一个调用 Modal.confirm 的函数
const wrapper = mount(
<MyComponent/>,
);
jest.useFakeTimers();
const button = wrapper
.findWhere(node => node.key() === 'btnDeleteTask')
.find('button');
button.simulate('click');
jest.runAllTimers();
jest.useRealTimers();
document.body.querySelectorAll('.ant-btn')[1].click();
document.body.querySelectorAll('.ant-btn') 将返回两个项目,第一个是取消,第二个是确定按钮,然后在点击触发器之后,我能够检查我的函数是否已通过调用一个玩笑的间谍
expect(taskDeleteSpy).toHaveBeenCalledTimes(1);