我创建了一个react 列表,用户可以通过单击按钮从其中删除项目.
删除操作如下:
const handleRemove = (index: number) => {
onChange(fieldName, (prevState) => {
return {
...prevState,
[fieldName]: prevState[fieldName].filter((_: any, i: number) => i !== index),
};
});
};
当我手动测试它时,它工作得很好,但当我用Cypress测试它时,删除项目不能像预期的那样工作,一些项目仍然存在.(I assume)问题是,Cypress 同时按下每一个"列表删除按钮",当列表快速变化时,按索引删除项目是不可信的.在现实生活中,这不会造成任何问题,对吗?
如果可以,我应该如何重写删除逻辑?
如果这不是什么大问题,我怎么能重写我的Cypress测试来等待几毫秒,而Reaction正在处理状态更新呢?
这是我花了几个小时修修补补后想出来的:
cy.get(".fa-solid.fa-minus").each((element, index) => {
cy.wait(index * 3).then(() => {
element.trigger("click");
});
});