практика написания автотестов - Не писать условия, циклы в автотестах

Теги: #<Tag:0x00007f738babf4b8> #<Tag:0x00007f738babf3a0>

привет. посмотрела видео-рекомендации как писать правильный автотест тест, что нужно избегать if else. , циклов и т д. вместо них можно использовать Assert, согласны ли вы с этим? А как быть с кейсом, когда сообщения летят в несколько сервисов одного Assert разве будет достаточно?

не совсем понятно что общего между Assert и циклами.

А как быть с кейсом, когда сообщения летят в несколько сервисов одного Assert разве будет достаточно?

Можно пример?

Ничего плохого в if else нет.

image
вот пример

а писать следует так нам сказали на курсе . или такой подход не всегда допустим?

2

так никто не пишет, так как все тестовые фреймворки и библиотеки уже имеют в себе встроенные методы.
к примеру с помощью selenide ваш “код” можно заменить на:

el.shouldBe(Condition.enabled);

и в случае, если элемент будет disabled то тест упадет с ошибкой.

а так же

if (el.enabled != false) {}
можно заменить на 
if (el.enabled) {}

спасибо, методы могут быть разные но с одной и той же функцией в этих фреймворках?

Как правило, в тестах недопустимы условия вида
“Если на странице то-то, то проверяй то-то”.

А вот условия вида “если на странице то-то, то кидай ошибку” абсолютно легитимны. Собственно, из них и состоит тест. Это по сути и есть ассерты.

И да, многие фреймворки типа Selenide, AssertJ, JUnit и т.д. позволяют писать ассерты красивее, так чтобы самому не приходилось кидать ошибку. Но внутри они все равно точно так же проверяют условие и кидают ошибку.

У вас тест состоит в том что нужно проверить все ли сервисы получили сообщение ?
Если да то можно софтАссерт что сервис_1 получил сообщение, софтАссерт что сервис_2 получил сообщение и так далее.

спасибо!

спасибо, возьму на заметку