Здравствуйте, 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