Есть ли в Cypress.io способ заставить тест провалиться, если выполняется определенное условие?
Пример:
На моей веб-странице, если строка «Извините, что-то пошло не так». присутствует на странице, я хочу, чтобы тест провалился. В настоящее время вот чем я занимаюсь.
/// <reference types = "Cypress" />
describe("These tests are designed to fail if certain criteria are met.", () => {
beforeEach(() => {
cy.visit("");
});
specify("If 'Sorry, something went wrong.' is present on page, FAIL ", () => {
cy.contains("Sorry, something went wrong.");
});
});
Прямо сейчас, если «Извините, что-то пошло не так». найдено, тест проходит успешно. Как мне провалить тест, если это условие выполнено?





Вы можете просто выбросить Исключение JavaScript, чтобы не пройти тест:
throw new Error("test fails here")
Однако в вашей ситуации я бы рекомендовал вместо этого использовать утверждение .should('not.exist'):
cy.contains("Sorry, something went wrong").should('not.exist')
Итак, вопрос в том, как заставить тест провалиться если выполняется определенное условие. Это отвечает на вопрос, отличный от того, который был задан. Кроме того, рекомендовать альтернативный подход, как правило, противопоказано, потому что, хотя он может помочь оригинальному плакату, он бесполезен для большинства читателей, которые ищут решение вопроса об условном отказе — для них should(), возможно, не имеет значения (например, , тест javascript, на который не распространяются параметры в should(), или если требуется пользовательское сообщение подтверждения).
Вопрос звучал так: «Прямо сейчас, если обнаружено «Извините, что-то пошло не так», тест проходит успешно. Как я могу провалить тест, если это условие выполнено?» :)
Если вы хотите условно провалить тест, вы можете использовать оператор JavaScript if либо внутри cy.then, либо синхронно.
Верно, я не говорю, что вы не помогли ОП - я имел в виду, что другие будут искать условное ручное утверждение и найдут этот пост, поэтому, возможно, несколько полезно включить условный пример.
Есть ли способ принудительно «немедленно» выполнить обратный вызов should(cb)? Потому что, если я туда ввожу, он просто продолжает повторять попытки, пока не истечет тайм-аут.
Отвечает ли это на ваш вопрос? Кипарис: проверьте, не существует ли элемент