Re[89]: Что такое Dependency Rejection
От: Sinclair Россия https://github.com/evilguest/
Дата: 06.03.24 14:46
Оценка:
Здравствуйте, ·, Вы писали:

·>Перепутал наверное потому, что эти парни с той же логикой что и у Pauel — подменили синхронный код асинхронным с eventual consistency — и делают вид что всё в порядке, так и должно работать, назвали это как "нефункциональное требование" в API, и никакие тесты у них наверняка не упали.

Мы "этих парней" регулярно ловили с фатальными багами в проде. Причём за время моей работы на проекте на той стороне сменилось четыре поколения одного и того же API, и, судя по всему, писали каждый раз новой командой.
Я, помнится, даже предлагал им наши автотесты бесплатно, чтобы они так не позорились. Не взяли :xz:/

·>Да, именно что "скорее всего". В общем явная лажа в дизайне, даже неясно как consistency обеспечить хотя бы eventual.

Да почему — конечно ясно. Добавляется хидер "affinity key", и всё начинает работать. Как, в общем-то, они и сделали после того, как мы слегка побили их палкой за такие вещи.

·>Я же рассказал — такое ловится конформационными тестами — небольшие быстрые тесты, которые дёргают "ихнее API" и ассертят результаты, проверяют на адекватность assumptions, сделанные в моках.

Простите, но это — набор слов. Дёргать "ихнее API" мы дёргаем — просто шансы на то, что мы будем дёргать именно так, чтобы поймать на вот таких вещах, примерно нуль.
Тесты на "создание пользователя" проходят прекрасно.
Тесты на получение списка пользователей проходят прекрасно.
Тесты на модификацию пользователя, и отдельно на сброс пароля тоже прекрасно проходят (ну, мы так думаем — ведь для настоящей проверки нужно этим пользователем с этим паролем куда-то залогиниться, а у нас к этому куда-то доступа на тот момент нету).
Тесты на удаление пользователя проходят.

Более того — у "тех парней" естественно есть полный набор вот таких вот "небольших быстрых тестов".

Проблема — как раз в том, что нам важна не работоспособность методов по отдельности, а e2e-workflow.
И именно его-то мы и проверяем нашими авто-тестами. Которые как раз вполне себе "небольшие и быстрые", так что о том, что свежевыкаченная на прод версия сломана, мы узнавали примерно через полчаса.
·>Ловить такое в e2e вида "выполняется (медленный!) UI workflow с навигацией от логина" — можно только в простых случаях.
UI Workflow не намного медленнее чисто-бэкендного набора вызовов. В реальности мы делали e2e не через UI (это у нас тестировалось отдельно, селениумом), а через наш собственный API, торчаший наружу.
Но разница небольшая — потому что наш UI был просто обёрткой над нашим же API, так что если API не работает, то в UI можно даже не смотреть.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.