Поделитесь примерами своих backend тестов

backend
pytest
python
Теги: #<Tag:0x00007fedbb532720> #<Tag:0x00007fedbb5325e0> #<Tag:0x00007fedbb5324a0>

(rmerkushin) #1

Всем доброго времени суток!

Кто нибудь может поделиться примерами своих #backend тестов? Нужны именно сами тесты, а не обвязки вокруг #pytest или других библиотек. Интересуюсь исключительно с эстетической точки зрения так сказать :smile: Стал раздражать текущий вид своих тестов и хочется посмотреть как пишут тесты другие люди.

P.S.: c #web все гораздо проще, там оборачивается все в #page-object и в принципе не вызывает проблем в наведении читаемости и красоты в тестах


#2

Извините, нельзя нам делиться.
Но вместо PageObject можно обернуть в BDD-style сценарии.
Или, если не нравится BDD, то сделать что-то похожее, но в коде.

Тот же подход, что для PageObject: всё взаимодействие на уровне HTTP-клиента (ну, или какой там еще протокол), все алгоритмические ухищрения оформляем в виде логически завершенных методов-шагов и расбрасываем их по классам в зависимости от тематики.
На верхнем уровне - только вызов шагов, коротко и читабельно.


(Artem Nikitin) #3

Пример староват, но и сегодня я бы похоже сделал.


(Mykhailo Poliarush) #4

(rmerkushin) #5

Решил попробовать #bdd подход. Наткнулся на pytest-bdd. В принципе либа меня устроила, но я не понял пока что как передавать контекст между when и then. Межу given и then без проблем передается. Кто нибудь пробовал pytest-bdd?


(Roy Obenon) #6

С описания pytest-bdd я понял, что он полезен для тестов где не большое кол-во шагов (макс. до 10), вот у меня например по 20-30 есть, и что на отдельный шаг свой метод писать?


(rmerkushin) #7

Если честно, не подскажу ) Уже изменил свой выбор в сторону behave, т.к. есть какая никакая поддержка в PyCharm’е и достаточно просто передавать контекст между кейвордами given, when и then, да и возможностей у behave вроде по более.


(Mykhailo Poliarush) #8

Жду прям уже статей на тему #python + #behave в #baza-znanij :slight_smile:


(rmerkushin) #9

Ну может быть как разберусь лучше. Пока, честно признаюсь, я в этом еще нуб полный. Раньше #bdd не использовал, и сейчас приходится немного перестраивать мышление в построении тестов под этот стиль. Самая главная проблема в для меня #bdd, это отсутствие грамотных тест-дизайнеров или аналитиков которые будут писать features, по этому приходится их писать самому.


(Mykhailo Poliarush) #10

Да это боль :head_bandage: если кроме тебя #bdd никому не нужен. Для #bdd нужен соответствующий процесс с большой степенью вовлечения команды, иначе … ты уже понял …


(rmerkushin) #11

Да, на это могу сказать что “вероятность крайне мала!” для наличия такой команды
http://lukomore.org/w/images/d/d0/Kraine_mala.jpg
Ну и я сам не всегда сразу делаю на 100% готовый feature к использованию, иногда приходится его менять, т.к. реализация некоторых моментов может вставлять палки в колеса )