赛普拉斯测试与预期值不匹配
cypress test not matching expected values
一些测试最近开始失败,而 运行 赛普拉斯 Chrome。
测试 1
赛普拉斯未能正确验证文本。以下是屏幕截图:
UI 上显示的文本
匹配的文本:
代码中的数字生成方式如下:
let dateString = '';
before(() => {
dateString = Date.now();
timestamp = `XXX.${dateString}`;
});
it('test to save data', () => {
// uses timestamp variable to save data
});
it('test to check data', () => {
// uses the same timestamp variable to check data
});
两个测试之间时间戳变量的值有何不同?是否为每个 it
块再次调用 before
方法?如果再次调用它,那么我如何确保两个测试对变量 timestamp
?
具有相同的值
在此块中,dateString
不是字符串,它是一个数字,错误看起来像是一个舍入问题(最后一位不同)。
let dateString = '';
before(() => {
dateString = Date.now();
timeStamp = 'XXX.' + `${dateString}`;
})
制作 dateString
正确的字符串应该可以解决问题,因为字符将被锁定。
let dateString = '';
before(() => {
dateString = Date.now().toString()
timeStamp = `XXX.${dateString}` // BTW this is how string interpolation looks
})
一些测试最近开始失败,而 运行 赛普拉斯 Chrome。
测试 1
赛普拉斯未能正确验证文本。以下是屏幕截图:
UI 上显示的文本
匹配的文本:
代码中的数字生成方式如下:
let dateString = '';
before(() => {
dateString = Date.now();
timestamp = `XXX.${dateString}`;
});
it('test to save data', () => {
// uses timestamp variable to save data
});
it('test to check data', () => {
// uses the same timestamp variable to check data
});
两个测试之间时间戳变量的值有何不同?是否为每个 it
块再次调用 before
方法?如果再次调用它,那么我如何确保两个测试对变量 timestamp
?
在此块中,dateString
不是字符串,它是一个数字,错误看起来像是一个舍入问题(最后一位不同)。
let dateString = '';
before(() => {
dateString = Date.now();
timeStamp = 'XXX.' + `${dateString}`;
})
制作 dateString
正确的字符串应该可以解决问题,因为字符将被锁定。
let dateString = '';
before(() => {
dateString = Date.now().toString()
timeStamp = `XXX.${dateString}` // BTW this is how string interpolation looks
})