Достаточно ли тестирования публичного API для модульного тестирования компонента API? - PullRequest
3 голосов
/ 19 сентября 2009

Мое программное обеспечение (приложение) предоставляет API (веб-сервисы) с использованием httplistener. Достаточно ли с точки зрения модульного тестирования тестирования функций API с помощью веб-запросов?

Я спрашиваю об этом, поскольку прочитал, что лучшая практика - проверять только общедоступные методы класса. В этом случае я не тестирую общедоступные методы класса, а общедоступные API-функции всего компонента.

Спасибо за любой совет

Ответы [ 3 ]

4 голосов
/ 19 сентября 2009

Это было бы больше похоже на интеграционный тест. Модульные тесты будут тестировать реальные методы непосредственно на классах. если у вас есть код в веб-методах на веб-сервисах, вы должны включить этот код в некоторые классы сервисов, чтобы их было проще тестировать Веб-методы никогда не должны делать что-то сами, как контроллеры в MVC.

Вы правы, вам нужно только протестировать публичные методы. Любой частный метод, не используемый публичным способом прямо или косвенно, должен быть в любом случае удален.

2 голосов
/ 19 сентября 2009

Это зависит от того, сколько у вас есть времени. После того, как вы создаете API, очень важно очень хорошо протестировать свои функции API.

Но если тест не пройден, вы можете быстро найти, где находится ошибка? Целью модульного тестирования всех ваших общедоступных методов (даже если они не предоставляются вашим API) является возможность быстрого исправления любой ошибки, которую вы можете создать, изменив.

1 голос
/ 19 сентября 2009

"Я спрашиваю об этом, так как прочитал, что рекомендуется проверять только открытые методы класса. В этом случае я проверяю не публичные методы класса, а общедоступные функции API из всего компонента. «

Я не вижу волос, которые ты расщепляешь. Публичный API является публичным API.

Методы Public API класса или функции Public API из компонента - это то же самое - Public API - единственное, что вы должны проверить.

У вас есть два уровня общедоступного API: уровень класса и уровень компонента. Это говорит о том, что у вас есть два уровня юнит-тестирования. Модульные тесты на уровне класса и модульные тесты на уровне компонентов.

Некоторые люди будут придираться к определению «юнит» для юнит-тестирования. Некоторые утверждают, что «юнит» - это всегда отдельный класс и ничего более. Я не вижу, как это правда, но некоторые люди будут требовать этого.

Единица является атомной или неделимой. Это единица измерения, когда ваш тест не отражает ее структуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...