Size: a a a

Django [ru] #STAY HOME

2019 July 12

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
гугли Cypress
источник

V💊

Vladimir 💊 Voytenko in Django [ru] #STAY HOME
MIKS
Ребят, как вы пишите тесты для большого джанго проекта со множеством апп? В каждой аппе в файле tests.py или общую тест-аппу для всех апп?
в каждой аппе /test/api,  /test/integration, /test/unit
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
и можно на самом питоне Behave (BDD)
источник

V💊

Vladimir 💊 Voytenko in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
гугли Cypress
с ним непонятно как работать с базой, а так мне прям понравилось
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Vladimir 💊 Voytenko
с ним непонятно как работать с базой, а так мне прям понравилось
он не должен работать с базой
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
ты подготавливаешь тестовое окружение и дальше вот его запускаешь
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
они в документации сами нечто подобное писали, что такие задачи не стоит делать на самом Cypress'е
источник

V💊

Vladimir 💊 Voytenko in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
он не должен работать с базой
ну смотри, я хочу проверить что у меня на сайте создается новость, после чего я могу к ней писать комменты. как без базы? а потом в другом тесте я хочу проверить что у уже существующей новости с комментами удаляются комменты, а потом что удаляется существующая новость.

когда на Behave писал тесты, там на каждый запус создавалась тестовая база короче все как обычно с тестами
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Vladimir 💊 Voytenko
ну смотри, я хочу проверить что у меня на сайте создается новость, после чего я могу к ней писать комменты. как без базы? а потом в другом тесте я хочу проверить что у уже существующей новости с комментами удаляются комменты, а потом что удаляется существующая новость.

когда на Behave писал тесты, там на каждый запус создавалась тестовая база короче все как обычно с тестами
ну, ты можешь по API проверить это
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
тесты API - отдельные всё равно есть
источник

V💊

Vladimir 💊 Voytenko in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
ну, ты можешь по API проверить это
это у меня в tests/api поверяется, что само апи работает, а е2е я хочу проверять что оно всё вместе работает так как надо
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
если у тебя есть тесты API, то ты же доверяешь API, так?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
то есть залезть в базу и залезать по API то же самое?
источник

V💊

Vladimir 💊 Voytenko in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
если у тебя есть тесты API, то ты же доверяешь API, так?
да, и есть тесты юнит у фронта, ему я тоже доверяю, но я не доверяю связке фронт-апи
источник

V💊

Vladimir 💊 Voytenko in Django [ru] #STAY HOME
т.е. я хочу проверяь то. чо потом будет делать пользователь
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
e2e тут как раз ты "играешь за пользователя", он видит все эти кнопочки, формы и прочее, он туда тыкает, какие-то API вызываются, что-то происходит на сайте, меняется state и так далее... а потом ты можешь по примерно похожим API проверить нужное тебе состояние вещей в базе
источник

V💊

Vladimir 💊 Voytenko in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
e2e тут как раз ты "играешь за пользователя", он видит все эти кнопочки, формы и прочее, он туда тыкает, какие-то API вызываются, что-то происходит на сайте, меняется state и так далее... а потом ты можешь по примерно похожим API проверить нужное тебе состояние вещей в базе
ну т.е. ты по сути предлагаешь мокнуть бэк?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
ну, смотри, вариантов тут несколько разных
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
но вообще, API ты тестируешь отдельно
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
а e2e ты тестируешь фронтенд, которые трогает все эти разные API
источник