как использовать кипарис для если ... тогда тестовый поток - PullRequest
1 голос
/ 28 января 2020

Я хочу написать какой-нибудь тест на кипарисе, чтобы загрузить страницу и проверить, открыт ли какой-то модальный режим (который не должен занимать более 5 секунд), затем закройте его, в противном случае, если модальный не открывается, просто go, чтобы выполнить тестовый регистр перед блок. Как мне это сделать? пока у меня есть следующий код, и я могу только убедиться, что модальный существует, то он закрывается.

function checkModalThenProceed() {
  cy.get(#check modal is open function).then(($modal) => {
    if ($modal) {
      closedModal();
    }
  })
}
describe('test if-else flow', () => {
  before(()=>{
    checkModalThenProceed();
  })
  it('testflow', () => {
    expect(1).to.eq(1);
  });
})
``

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Я использую этот код:

if ($body.find("modal_selector").length > 0) {   
        //evaluates as true if selector exists at all
        //do something
        .....
      }else{
           //if selector does not exist
           }
0 голосов
/ 29 января 2020

Трудно догадаться, что # проверяет, является ли открытая функция открытой , но если это функция, как следует из названия, вы можете просто вызвать ее и использовать результат напрямую в простом if() заявление.

Поскольку это очевидно, и у вас есть cy.get(), я предполагаю, что вы используете какой-то селектор.

Использование cy.get() в этом сценарии провалит проверку, если модальное окно фактически не открыто.

Вы можете изменить выражение на использование jquery (предоставляется в Cypress global как Cypress.$, ref ), что позволяет вам проверять селектор, не вызывая его неудачу, см jquery ref .

function checkModalThenProceed() {
  if (Cypress.$('my-modal-selector').length) {  // zero length means not found
    closedModal();
  }
}
...