赛普拉斯测试与预期值不匹配

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
})