Cypress: Лучшая практика для условного тестирования наличия элементов пользовательского интерфейса - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь запустить автоматическое тестирование с Cypress. Но, очевидно, изучение новой концепции И нового языка является сложной задачей ... Поэтому я не уверен, нашел ли я лучшее решение для простого тестирования наличия элементов пользовательского интерфейса в зависимости от условий.
Все элементы отображаются на стороне сервера.

Таким образом, в основном есть элемент DIV, который может содержать либо

  • элемент DIV класса 'card'

OR

  • элемент P класса no-ops

Чтобы проверить это условно, я выяснил этот код:

cy.get('div#section_paused_op').then(($div) => {
    if($div.find('div.card').length > 0) {
        cy.get('div#section_paused_op div.card').should('exist')
    } else {
        cy.get('div#section_paused_op p.no-ops').should('exist')
    }
})

Итак, чтобы проверить существование элемента DIV класса 'card' в одном случае, сначала я должен найти его с помощью find (). Это хорошая практика или это можно сделать лучше?

1 Ответ

0 голосов
/ 09 ноября 2018

Как вы упомянули лучшие практики, я собираюсь ответить на это, а не предложение кода:

Я бы сказал, что ваше тестирование должно основываться на срабатывании этих условий и точно знать, в каком состоянии должно быть что-то во время этого теста.

Что заставляет DIV с классом "карточка" появляться? Имейте тест, который вызывает это условие, а затем утверждает, что элемент есть.

Что заставляет P с классом "no-ops" появляться? Имейте тест, который запускает это условие, а затем утверждает, что элемент есть.

То, что на странице что-то есть, не означает, что это должно быть.

...