КИПРЕСС - Не могу сделать ТОГДА => ЕСЛИ ВИДИМО - PullRequest
0 голосов
/ 27 мая 2020

хорошо,

вот такая ситуация:

В тесте, который я выполняю на веб-сайте, всегда есть таблица, но когда в этой таблице нет элементов, она скрыта. Мне нужно выполнить действие, только если в этой таблице есть видимые элементы. А если нет, просто переходите к следующим тестам.

Итак, если, например, таблица пуста, я напишу это --- cy.get ('element', {timeout: 60000}). should ('be.visible') --- Время ожидания теста истекло, и это правильно, поскольку таблица пуста и поэтому не станет видимой.

Но, конечно, мне нужен тест NOT TO timeout, Мне нужно, чтобы по прошествии установленного времени он перешел к следующим тестам.

Итак, я подумал об этом:


cy.get('element').then(($table) => {  
    if ($table.is(':visible')){
        cy.log('JUST TESTING')
    }
}) 

Проблема в том, что это всегда введите if и распечатайте журнал консоли JUST TESTING. Это означает, что условие if visible не работает.

Есть идеи?

Спасибо!

1 Ответ

0 голосов
/ 03 июня 2020

Итак, у вас есть два случая для тестирования: один, если в таблице есть элементы, и другой, если в таблице нет элементов. Я бы разделил это на два тестовых случая и заполнял / не заполнял таблицу, чтобы она отображалась или не отображалась. ИМХО, выполнение этого в одном тестовом примере не доказывает, что таблица работает или не работает, поскольку как узнать, что вы видите, правильно. У вас может быть ситуация, когда таблица должна отображаться, поскольку у нее есть содержимое, но нет, но ваш тест всегда будет проходить, поскольку он не знает, в каком состоянии должна быть таблица. Что-то вроде ...

describe('Testing my table', () => {
  context('table is populated', () => {
  beforeEach {
  // populate the table with data
  }
  it('should show the table, () => {
    // Some testing stuff in here to check the table is showing
  });

  context('table is NOT populated', () => {
  beforeEach {
  // Any set up you need for a non-populated table
  }
  it('shouldn't show the table, () => {
    // Check we can't see the table
  });
...