Material ui Cypress/React管理表排序问题

Material ui Cypress/React管理表排序问题,material-ui,cypress,react-admin,Material Ui,Cypress,React Admin,在这里寻找一些灵感。我使用的是react admin,这是一个基于材料ui的框架,使用Cypress进行e2e测试,在表排序方面遇到了问题 react admin github项目中有一个Cypress测试来测试表排序,但它所做的只是查看在单击表标题以切换排序后是否显示向上/向下指示器。这是一个UI测试,不是端到端测试,因为它不会查看实际数据以查看数据是否已排序 在我的例子中,当您更改排序顺序时,将发出一个API请求,UI将呈现来自API的新排序数据 但是,尽管Cypress在排序之前使用.co

在这里寻找一些灵感。我使用的是react admin,这是一个基于材料ui的框架,使用Cypress进行e2e测试,在表排序方面遇到了问题

react admin github项目中有一个Cypress测试来测试表排序,但它所做的只是查看在单击表标题以切换排序后是否显示向上/向下指示器。这是一个UI测试,不是端到端测试,因为它不会查看实际数据以查看数据是否已排序

在我的例子中,当您更改排序顺序时,将发出一个API请求,UI将呈现来自API的新排序数据

但是,尽管Cypress在排序之前使用.contains()正确检查第一行的内容,但排序完成后,Cypress仍然会做出响应,就好像表中的第一行包含相同的数据,而不是我在屏幕上看到的新数据一样。我已经检查了源代码,DOM被更新为新的顺序

好像有缓存在某处运行,我不知道在哪里

我不能分享完整的代码,因为它是复杂的和专有的,但我已经把它归结为一个最小的例子,可以在

这使用react管理员自己的演示站点

只要做:

git clone https://gitlab.com/notifium_public/cypress-table-sort.git
npm install
npm run test
然后在Cypress中运行table_sort.js测试

您将看到测试登录,检查第一行,然后单击列标题并再次检查第一行。数据是随机的,所以我能想到的最好的检查方法是检查新的第一行中没有“最后一次看到”日期在2020年的客户

从视觉上看,最上面一行的新条目将是2016/2017,但测试失败,因为它仍然参考了最初的2020行

有什么想法吗? 当做 安迪