我最近开始使用新的ionic 4
,它引入了react而不是angular作为一种语言。在我最近的项目中,我正在使用react-testing-library
for react测试我的组件。尤其是当涉及到表单和表单的提交/更改时。由于ionic为UI使用了自己的web组件,而不是本机组件(ion-input而不是input),所以我不能触发像更改值这样的事件。如果我这样做,我会得到一个错误消息,这个元素没有一个值的设置器。在研究DOM树时,有一个原生输入元素作为ion-input
元素的子元素。它们似乎是通过refs
进行通信的,因为本机输入上没有值。
现在更改测试用例中字段值的正确方法是什么?我也不能用querySelector
查询原生输入元素。它返回一个空对象。而不是查询ion-input
时,返回元素。
感谢每一个想法:)
发布于 2020-01-20 20:34:50
如果您使用的是onIonChange
事件,则需要为此触发一个自定义事件,例如:
const { getByPlaceholderText } = render(...);
const input = getByPlaceholderText('Input placeholder');
fireEvent(input, new CustomEvent('ionChange', { detail: { value: 'Text' } }));
https://stackoverflow.com/questions/58860167
复制相似问题