C # - VS 2010 Unit-тестирование для частных методов - PullRequest
5 голосов
/ 04 августа 2011

VS 2010 допускает закрытое тестирование методом метода. Это хорошая идея? Я всегда слышал, что сценарии модульного тестирования были только для публичных методов. Должен ли я беспокоиться о частных методах и свойствах?

Спасибо Leo

Ответы [ 4 ]

5 голосов
/ 04 августа 2011

В своей безграничной мудрости Джон Скит однажды написал (подробно на C #): «Я счастлив испытать все, что могу, самым простым способом»

ИМХО, если вы считаете, что закрытый метод заслуживает модульного тестирования, протестируйте его.

1 голос
/ 04 августа 2011

Две причины не тестировать частные методы:

1) Хрупкие испытания . Закрытый метод - это деталь реализации, которую вы можете изменить в будущем, не нарушая тесты.

2) Дублирование . Код в закрытых методах должен охватываться тестами, которые осуществляют объект с использованием его открытого интерфейса. Если дело обстоит именно так, вы просто дважды попробуете одно и то же.

0 голосов
/ 05 августа 2011

Как уже было сказано, протестируйте его, если вы чувствуете необходимость и можете, но помните, что юнит-тест частного метода с большей вероятностью будет сорван, если кто-то его модифицирует, что может стать большой болью.в заднице большого проекта с большим количеством юнит-тестов мой совет - тестировать только те методы, функциональность которых очень ясна и вряд ли будет изменена.

0 голосов
/ 04 августа 2011

Хотя было бы неплохо проверить и все ваши личные методы / свойства, на самом деле важны ваши открытые методы / свойства (то есть то, что вы открываете для внешнего мира). В конечном итоге ваши личные методы / свойства будут каким-то образом использоваться вашими открытыми методами / свойствами.

Если вы хотите проверить свои собственные методы / свойства самостоятельно, то протестируйте их. Но так как они не будут использоваться напрямую (а не косвенно), я не чувствую, что это абсолютно необходимо.

...