如何检查 UI 上记录的文件上传时间在 cypress 中是否正确
How do I check if file upload time recorded on UI is correct in cypress
我正在编写 cypress 测试用例,我必须在其中上传文件。上传完成后,UI 会刷新以显示上传时间。我不得不断言记录的文件上传时间确实是正确的。所以我捕获了显示的日期时间。这是 Oct. 5, 2021, 3:29 a.m.
。此外,一旦上传完成,我就可以使用 new Date()
获取测试用例中的当前时间。我的疑问是如何比较这两者?
从UI中抓取的日期时间是一个字符串,需要解析成日期进行比较。
例如,使用dayjs
由于字符串是一种稍微不标准的格式,您可以提供格式字符串进行解析。
唯一需要额外工作的是删除 a.m.
中的点
const dateString = 'Oct. 5, 2021, 12:31 a.m.'
.replace('a.m.', 'am')
.replace('p.m.', 'pm')
const uploadDate = dayjs(dateString, 'MMM. DD, YYYY, HH:MM a') // parse
const now = dayjs()
expect(uploadDate.isSame(now, 'minute')).to.eq(true) // uploaded in last minute
// or
const diffMinutes = now.minute() - uploadDate.minute()
expect(diffMinutes).to.be.lte(1)
我正在编写 cypress 测试用例,我必须在其中上传文件。上传完成后,UI 会刷新以显示上传时间。我不得不断言记录的文件上传时间确实是正确的。所以我捕获了显示的日期时间。这是 Oct. 5, 2021, 3:29 a.m.
。此外,一旦上传完成,我就可以使用 new Date()
获取测试用例中的当前时间。我的疑问是如何比较这两者?
从UI中抓取的日期时间是一个字符串,需要解析成日期进行比较。
例如,使用dayjs
由于字符串是一种稍微不标准的格式,您可以提供格式字符串进行解析。
唯一需要额外工作的是删除 a.m.
const dateString = 'Oct. 5, 2021, 12:31 a.m.'
.replace('a.m.', 'am')
.replace('p.m.', 'pm')
const uploadDate = dayjs(dateString, 'MMM. DD, YYYY, HH:MM a') // parse
const now = dayjs()
expect(uploadDate.isSame(now, 'minute')).to.eq(true) // uploaded in last minute
// or
const diffMinutes = now.minute() - uploadDate.minute()
expect(diffMinutes).to.be.lte(1)