Разбираю тут тестирование клиент-серверного взаимодействия по TCP/IP.
На работе.
Там много всяких тонкостей. И "приёмов работы".
В частности - mocking. "Исключение" передающих звеньев. Dependency Injection. Изоляция слоёв и маршалинга между ними.
И как "не размазывать" части логики, которые являются "взаимоответными" типа SaveToPipe и LoadFromPipe по "взаимонесвязанным" проектным классам. И как вообще обойтись без оперирования "бизнес-логикой" понятием "коннеции" (Pipe).
Надо будет об этих моментах написать подробнее.
Особенно о приёмах того как на "завязываться на mocking", а исключать "передающие звенья". Если мы "уверены", что эти звенья "и так работают". Или протестировали их ОТДЕЛЬНО.
И о том - как это ведёт к детерминированности и "тестируемости" архитектуры.
И как попытка протестировать подобные взаимодействия ведёт к "улучшению" архитектуры и выделению "промежуточных слоёв".
Единственный момент - очень сложно придумать "синтетический пример" простой для понимания и не связанный с работой.
Буду думать.
P.S. "Тестирование калькулятора" что ли сделать клиент-серверным :-) Чтобы "морда" в одном приложении, а "бизнес-логика" - в другом... Для ПРИМЕРА... Есть в этой шутке доля шутки...
P.P.S. И кстати - что бы вы посоветовали бы взамен "голого TCP/IP"? DCOM/CORBA/Soap?
На работе.
Там много всяких тонкостей. И "приёмов работы".
В частности - mocking. "Исключение" передающих звеньев. Dependency Injection. Изоляция слоёв и маршалинга между ними.
И как "не размазывать" части логики, которые являются "взаимоответными" типа SaveToPipe и LoadFromPipe по "взаимонесвязанным" проектным классам. И как вообще обойтись без оперирования "бизнес-логикой" понятием "коннеции" (Pipe).
Надо будет об этих моментах написать подробнее.
Особенно о приёмах того как на "завязываться на mocking", а исключать "передающие звенья". Если мы "уверены", что эти звенья "и так работают". Или протестировали их ОТДЕЛЬНО.
И о том - как это ведёт к детерминированности и "тестируемости" архитектуры.
И как попытка протестировать подобные взаимодействия ведёт к "улучшению" архитектуры и выделению "промежуточных слоёв".
Единственный момент - очень сложно придумать "синтетический пример" простой для понимания и не связанный с работой.
Буду думать.
P.S. "Тестирование калькулятора" что ли сделать клиент-серверным :-) Чтобы "морда" в одном приложении, а "бизнес-логика" - в другом... Для ПРИМЕРА... Есть в этой шутке доля шутки...
P.P.S. И кстати - что бы вы посоветовали бы взамен "голого TCP/IP"? DCOM/CORBA/Soap?
Комментариев нет:
Отправить комментарий