Цепочка отдельных тестов страниц - PullRequest
0 голосов
/ 21 февраля 2020

Предположим, я тестирую сайт, состоящий из 10 страниц. На 10-й и последней странице это место, где производится платеж, после чего поток заканчивается.

Я хочу запустить несколько тестов на этой 10-й странице; оплата визы, оплата MasterCard, оплата Amex et c.

Теперь я могу написать тест, охватывающий весь поток, что приведет к оплате визы. Затем я мог бы скопировать весь этот тест и настроить платеж MasterCard et c. Это, очевидно, было бы практикой.

Как бы я начал при тестировании страниц 10 из 10 определять страницы с 1 по 9 в качестве предварительных условий, следовательно, облегчая дублирование кода?

1 Ответ

0 голосов
/ 21 февраля 2020

Вы можете исключить контрольный пример из функции, которую вы повторяете в наборе конфигураций. Вы также можете использовать it( или describe( и программно создавать тесты. При таком подходе нужно написать его только один раз, и все же может иметь несколько if/else для спецификатора поставщика c частей.

describe('Checkout', () => {
  [
    {provider: 'visa', email: 'test+visa@provider.com'},
    {provider: 'mastercard', email: 'test+mastercard@provider.com'},
    {provider: 'amex', email: 'test+amex@provider.com'},
  ].forEach((setting) => {
    it(`Provider: ${setting.provider}`, () => {
      cy.get(`button[data-provider="${setting.provider}"]`).click();
      cy.get('#email')
        .value(setting.email);
      cy.assert('something');
      cy.click('.next-step');
    });
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...