#javascript #cypress
#javascript #cypress
Вопрос:
Использование Cypress.io для сквозного тестирования я пытаюсь смоделировать конечную точку API, в которой я хочу получить 0 с вероятностью 0,5 и 1 с вероятностью 0,5 для каждого вызова. Однако все мои вызовы получают один и тот же ответ, я добавил a console.log
внутри функции, которую я передаю в response ( getRandomStatusAndScore
) , однако я вижу, что console.log
вызывается только один раз, поэтому я предполагаю, что именно поэтому все вызовы возвращают одинаковые результаты cy.route()
. Советы и идеи? `
const getRandom = () => {
console.log(Math.random());
return Math.random() > 0.5
? { status: 1, score: Math.round(Math.random() * 100) }
: { status: 0 };
}
};
cy.route({
method: 'GET',
url: '/api/status/*',
response: getRandom(),
});
Комментарии:
1. @blex к сожалению, это не сработало, консоль. журнал печатается только один раз, я предполагаю, что cy.route вызывается только один раз и имеет одинаковый ответ для всех вызовов
2. Зачем вам нужно воссоздавать случайное поведение в тестах? Было бы проще протестировать с известным значением или последовательностью значений.
3. Пожалуйста, объясните «визуализируйте прогресс». Также покажите больше теста — в частности, что вызывает вызовы API. Если тест выдает, скажем, щелчок () для каждого вызова, может быть возможно выдавать новый cy.route() перед каждым щелчком.
4. @eric99 Я понял твою точку зрения, фантастическая идея, триггер — это вызовы setInterval, поэтому я могу контролировать время в тесте: 1:
5. «триггер — это вызовы setInterval, поэтому я могу контролировать время в рамках теста» … с помощью cy.tick() .