Re[10]: Разработка через тестирование бесполезна
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.06.21 09:41
Оценка:
Здравствуйте, Sharov, Вы писали:

N>>Ну а интеграционные, что, не абстрагируются от внешнего мира?

S>Ну это почти боевая эксплуатация, т.е. как реальный пользователь будет взаимодействовать с системой.
N>>Или речь про проведение границы между "чистыми" и "нечистыми" функциями?
S>В некотором роде да, речь про изоляцию.

Как-то всё это абстрактно. Вот у меня есть:
1. Transport layer.
2. Transaction layer, использует transport layer.
3. Dialog layer, использует transaction layer.
Остановимся на этом (там ещё уровня 4, но не усложняем).

Transport layer незамоканный отправляет в сеть и принимает; замоканный зовёт нужные коллбэки.
Уровень транзакций незамоканный общается с транспортным, замоканный дёргает вызовы некоего мока.
Ну и с третьим точно так же.
Если я тестирую диалоговый уровень — что например по получению "200 OK" произошёл переход состояния объекта Dialog из Trying или Early в Confirmed, и посылаю это как вызов processResponse() от транзакционного модуля, это юнит-тест?
А если я сделаю то же самое, сэмулировав сетевой ответ от транспорта (тогда у транзакционного его processIncoming() опознает ответ, заматчит транзакцию, найдёт коллбэк диалога в её состоянии и вызовет его), это ещё юнит-тест или уже интеграционный?
А если я реально пришлю UDP пакет в транспорт, это уже интеграционный тест или ещё нет?
А если это будет TLS поверх TCP (расшифровка которого делается в third-party в лице OpenSSL)?

С моей точки зрения, это всё функциональные тесты, и пофиг, что из них считать "юнитами". А как в остальном мире?
The God is real, unless declared integer.
Отредактировано 18.06.2021 9:44 netch80 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.