Size: a a a

JavaScript.Ninja

2020 March 13

m

m^^combat in JavaScript.Ninja
// есть страница на которой отображается 0-10 карточек и кнопка "load more" которая при нажатии подгружает еще 5 карточек

it(() => {
 cy.get('.cards').then($cards => {
   if ($cards.length < 10) {
     cy.get('.loadMore').should('not.exist');
   } else {
     cy.request('/moreCards&after=10').then(res => {
       if (res.body.hasMore) {
         cy.get('.loadMore').should('exist');
       } else {
         cy.get('.loadMore').should('not.exist');
       }
     });
   }
 });
});
источник

IK

Illya Klymov in JavaScript.Ninja
Тем что если на странице к примеру сразу оказалось больше 10 карт одна из веток окажется непроверенной
источник

IK

Illya Klymov in JavaScript.Ninja
Так быть не должно. Тест всегда должен выполняться одинаково, независимо от окружения
источник

m

m^^combat in JavaScript.Ninja
не понял какая ветка окажется не проверенной
источник

IK

Illya Klymov in JavaScript.Ninja
Первая
источник

IK

Illya Klymov in JavaScript.Ninja
Should not exist
источник

IK

Illya Klymov in JavaScript.Ninja
Тест не должен никогда содержать логики
источник

m

m^^combat in JavaScript.Ninja
это ж энд ту энд тест
источник

m

m^^combat in JavaScript.Ninja
он проверяет бизнес логику
источник

IK

Illya Klymov in JavaScript.Ninja
- открыли страницу
- на ней должно быть 8 элементов
- на ней должна быть кнопка load more
- нажали load more
- должно быть 31 элемент
- кнопки быть не должно
источник

IK

Illya Klymov in JavaScript.Ninja
m^^combat
он проверяет бизнес логику
Именно
источник

IK

Illya Klymov in JavaScript.Ninja
Проверяет а не воспроизводит ее
источник

IK

Illya Klymov in JavaScript.Ninja
Ваше условие в if это бизнес логика
источник

IK

Illya Klymov in JavaScript.Ninja
Бизнес логика в тестах быть не должна
источник

F

Foma in JavaScript.Ninja
так тест написал а потом ctr c ctr v))
источник

IK

Illya Klymov in JavaScript.Ninja
Foma
так тест написал а потом ctr c ctr v))
Да, это нормально
источник

IK

Illya Klymov in JavaScript.Ninja
Для тестов явно надо нарушать принцип DRY
источник

IK

Illya Klymov in JavaScript.Ninja
Даже выносить повторяющиеся куски в хелперы надо очень аккуратно
источник

F

Foma in JavaScript.Ninja
эт че пагинация?
источник

m

m^^combat in JavaScript.Ninja
ок я понял, тоесть мне нужно получается перед тестом мокать реквест который возвращает реальное количество карточек на странице?
источник