Re[90]: Что такое Dependency Rejection
От: · Великобритания  
Дата: 06.03.24 20:58
Оценка:
Здравствуйте, Sinclair, Вы писали:

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

S>Да почему — конечно ясно. Добавляется хидер "affinity key", и всё начинает работать. Как, в общем-то, они и сделали после того, как мы слегка побили их палкой за такие вещи.
Ну как исправить-то ясно, конечно. Я имел в виду, что без исправления, с таким дизайном api надёжно пользоваться невозможно.
Суть в том, что как Pauel утверждает, мол, что если заменили прямой вызов действия на асинхронную очередь — тесты не должны падать. Это ущербная логика.

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

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

S>Проблема — как раз в том, что нам важна не работоспособность методов по отдельности, а e2e-workflow.

e2e — означает полный фарш всей логики всей системы, кучей разных "ихних API". Конф-тесты же отдельно проверяют конкретно этот участок вашей системы — взаимодействие с одним конкретным "ихним API".
Но в простом случае если таких api один-два, то получается вырожденный случай, и разделение не требуется.

S>И именно его-то мы и проверяем нашими авто-тестами. Которые как раз вполне себе "небольшие и быстрые", так что о том, что свежевыкаченная на прод версия сломана, мы узнавали примерно через полчаса.

Ну примерно для этого конф-тесты и нужны.

S>·>Ловить такое в e2e вида "выполняется (медленный!) UI workflow с навигацией от логина" — можно только в простых случаях.

S>UI Workflow не намного медленнее чисто-бэкендного набора вызовов. В реальности мы делали e2e не через UI (это у нас тестировалось отдельно, селениумом), а через наш собственный API, торчаший наружу.
S>Но разница небольшая — потому что наш UI был просто обёрткой над нашим же API, так что если API не работает, то в UI можно даже не смотреть.
Ну как бы внезапно получилось, что не совсем e2e оказывается.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.