有没有一种方法可以测试Ant Design Modal参数方法?

时间:2020-07-01 19:58:17

标签: reactjs jestjs enzyme antd

我目前正在尝试用笑话和酶的代码片段测试“ onOk”和“ onCancel”方法:

Modal.confirm({
title: 'Role Change',
content: `Change?`,
okText: 'Change',
onOk: method1,
onCancel: method2
  })

这在组件中调用的帮助器方法中。我尝试等待组件更新,然后查询“确定”按钮,但酶似乎找不到它。当我在组件上执行debug()时,模态也不会显示。有没有什么好的方法可以监视这些方法,甚至一开始就调用它们?谢谢!

1 个答案:

答案 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);
相关问题