Re[11]: Разработка через тестирование бесполезна
От: Sharov Россия  
Дата: 18.06.21 10:23
Оценка:
Здравствуйте, netch80, Вы писали:


N>Transport layer незамоканный отправляет в сеть и принимает; замоканный зовёт нужные коллбэки.

N>Уровень транзакций незамоканный общается с транспортным, замоканный дёргает вызовы некоего мока.
N>Ну и с третьим точно так же.
N>Если я тестирую диалоговый уровень — что например по получению "200 OK" произошёл переход состояния объекта Dialog из Trying или Early в Confirmed, и посылаю это как вызов processResponse() от транзакционного модуля, это юнит-тест?

Да.

N>А если я сделаю то же самое, сэмулировав сетевой ответ от транспорта (тогда у транзакционного его processIncoming() опознает ответ, заматчит транзакцию, найдёт коллбэк диалога в её состоянии и вызовет его), это ещё юнит-тест или уже интеграционный?


Я бы сказал да. Ну точно не интеграционный.

N>А если я реально пришлю UDP пакет в транспорт, это уже интеграционный тест или ещё нет?


Интеграционный тест. Проверяем все целиком, т.е. вполне реальное взаимодействие. Т.е. если провели
с сетевой картой, то тест упадет.

N>А если это будет TLS поверх TCP (расшифровка которого делается в third-party в лице OpenSSL)?


Зависит от, см. выше. Если хоть что-то замокано, то не интеграционный точно.

N>С моей точки зрения, это всё функциональные тесты, и пофиг, что из них считать "юнитами". А как в остальном мире?


Ну нет, есть все же разница. Речь об уровне изоляции. В остальном мире что-то вроде этого (я никак не прочитаю) --
https://martinfowler.com/articles/practical-test-pyramid.html
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.