Вечер добрый. Хочу для своих целей написать сервер на обычных сокетах, не веб.
Встал вопрос, как мне его тестировать? На каждую функцию, параллельно писать клиента и проверять? Или есть какой встроенный инструментарий в Visual Studio?
Вариант 1 (Не рекомендую, но посмотреть можно) Вариант 2 (Тестирование .net приложений) Инструменты для тестирования Тестирование MVC (Советую для начала посмотреть всю главу, а потом делать выводы. Подходит НЕ ТОЛЬКО для MVC, можно использовать и для ваших проектов (Наверное))
Да клиент понадобится, только скорее всего пустой, только симулирующий настоящего.
Так же тебе скорее всего захочется тестировать нескольких одновременных подключений, наверное самый сложный способ но его можно совместить с нагрузочным, где то что то вылетит
Получается создаю решение, туда два проекта. Сервер и клиент? Понятное дело, что общие элементы я выношу в отдельную библиотеку. И пишу сервер, тут же сразу клиент?
ссылки на способы организации тебе показал Nik Faraday
лично я почти не использовал в чистом виде TDD, а так же не пользовался готовыми инструментами (так как когда я этим пользовался, я писал свои)
тестирование это отдельный проект, нашли баг - ты заводишь проект (ну или юнит тест) и воспроизводишь
клиент для тестирования сервера может быть не полноценный, это просто набор заглушек для симуляции сеанса связи.
Плохая практика использовать код настоящего клиента, если ты же его разрабатываешь, так как ошибки в них могут совпасть так что пропустишь, но для нагрузочного тестирования наоборот, нужны настоящие клиенты, с другой стороны можно сторонними инструментами контролировать состояние как сервера так и клиента (например откатывать базу данных до некого специального для группы последующих тестов)