Несколько тестов недавно начали давать сбой при запуске cypress с Chrome.
Тест 1
Cypress не может правильно проверить текст. Вот скриншоты:
Текст, отображаемый в пользовательском интерфейсе
Вот как число генерируется в коде:
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
});
Как значение переменной timestamp может различаться между двумя тестами? Вызывается ли метод before
снова для каждого блока it
? Если он будет вызван снова, как я могу убедиться, что оба теста имеют одинаковое значение для переменной 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
})
спасибо и хороший улов на интерполяции строк, хе-хе