赛普拉斯测试 - 期望日期格式
Cypress Testing - Expect a date format
我正在为我的 rest 调用创建 Cypress 测试 API。无论如何,我需要验证日期格式,例如,在我的 JSON 响应中我有:
“文档日期”:“2022-01-28”
因此,我需要验证日期格式而不是它的值。赛普拉斯“期望”有一种方法可以验证这一点吗? Idk,也许是这样的:
expect(documentDate)to.have.format('yyyy-MM-dd');
如果有人能帮助我,那就太好了。
谢谢。
您可以为此使用正则表达式。您可以使用下面的正则表达式,它取自 Whosebug thread.
/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/
在你的测试中你可以使用:
expect(documentDate).to.match(/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/)
您应该使用正则表达式来匹配您的日期格式。
\d
是用于匹配任何数字字符 (0-9)
的正则表达式
{}
是前面标记的量词
expect(documentDate).to.match(/\d{4}-\d{2}-\d{2}/)
另一种方法是使用 dayjs 库。
正则表达式的问题是它只检查字符,不检查日期有效性
import dayjs from 'dayjs'
it('checks date string is a valid date', () => {
const documentDate = "2022-02-29" // not valid but passes with regex
const parsed = dayjs(documentDate, 'YYYY-MM-DD')
// fails with error "expected 2022-03-01 to equal 2022-02-29"
expect(parsed.format('YYYY-MM-DD')).to.eq(documentDate)
})
我正在为我的 rest 调用创建 Cypress 测试 API。无论如何,我需要验证日期格式,例如,在我的 JSON 响应中我有:
“文档日期”:“2022-01-28”
因此,我需要验证日期格式而不是它的值。赛普拉斯“期望”有一种方法可以验证这一点吗? Idk,也许是这样的:
expect(documentDate)to.have.format('yyyy-MM-dd');
如果有人能帮助我,那就太好了。
谢谢。
您可以为此使用正则表达式。您可以使用下面的正则表达式,它取自 Whosebug thread.
/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/
在你的测试中你可以使用:
expect(documentDate).to.match(/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/)
您应该使用正则表达式来匹配您的日期格式。
\d
是用于匹配任何数字字符 (0-9)
{}
是前面标记的量词
expect(documentDate).to.match(/\d{4}-\d{2}-\d{2}/)
另一种方法是使用 dayjs 库。
正则表达式的问题是它只检查字符,不检查日期有效性
import dayjs from 'dayjs'
it('checks date string is a valid date', () => {
const documentDate = "2022-02-29" // not valid but passes with regex
const parsed = dayjs(documentDate, 'YYYY-MM-DD')
// fails with error "expected 2022-03-01 to equal 2022-02-29"
expect(parsed.format('YYYY-MM-DD')).to.eq(documentDate)
})