Как принудительно провалить тест в Cypress.io

Есть ли в 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.");
  });
});

Прямо сейчас, если «Извините, что-то пошло не так». найдено, тест проходит успешно. Как мне провалить тест, если это условие выполнено?

Отвечает ли это на ваш вопрос? Кипарис: проверьте, не существует ли элемент

M. Justin 10.12.2021 00:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
20
1
18 120
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете просто выбросить Исключение JavaScript, чтобы не пройти тест:

throw new Error("test fails here")

Однако в вашей ситуации я бы рекомендовал вместо этого использовать утверждение .should('not.exist'):

cy.contains("Sorry, something went wrong").should('not.exist')

Итак, вопрос в том, как заставить тест провалиться если выполняется определенное условие. Это отвечает на вопрос, отличный от того, который был задан. Кроме того, рекомендовать альтернативный подход, как правило, противопоказано, потому что, хотя он может помочь оригинальному плакату, он бесполезен для большинства читателей, которые ищут решение вопроса об условном отказе — для них should(), возможно, не имеет значения (например, , тест javascript, на который не распространяются параметры в should(), или если требуется пользовательское сообщение подтверждения).

Peter Kionga-Kamau 26.04.2021 19:52

Вопрос звучал так: «Прямо сейчас, если обнаружено «Извините, что-то пошло не так», тест проходит успешно. Как я могу провалить тест, если это условие выполнено?» :)

Zach Bloomquist 27.04.2021 00:18

Если вы хотите условно провалить тест, вы можете использовать оператор JavaScript if либо внутри cy.then, либо синхронно.

Zach Bloomquist 27.04.2021 00:18

Верно, я не говорю, что вы не помогли ОП - я имел в виду, что другие будут искать условное ручное утверждение и найдут этот пост, поэтому, возможно, несколько полезно включить условный пример.

Peter Kionga-Kamau 27.04.2021 14:53

Есть ли способ принудительно «немедленно» выполнить обратный вызов should(cb)? Потому что, если я туда ввожу, он просто продолжает повторять попытки, пока не истечет тайм-аут.

Attila Szeremi 02.02.2022 16:23

Другие вопросы по теме