Как вы тестируете приватные методы с NUnit? - PullRequest
98 голосов
/ 30 октября 2008

Мне интересно, как правильно использовать NUnit. Сначала я создал отдельный Test-Project, который использует мой основной проект в качестве ссылки. Но в этом случае я не могу проверить частные методы. Я предположил, что мне нужно включить мой тест-код в мой основной код ?! - Это, кажется, не правильный способ сделать это. (Мне не нравится идея доставки кода с тестами в нем.)

Как вы тестируете приватные методы с NUnit?

Ответы [ 12 ]

1 голос
/ 31 мая 2016

Вы можете сделать ваши методы защищенными, а затем использовать assembly: InternalVisibleTo("NAMESPACE") в ваше тестовое пространство имен.

Следовательно, НЕТ! Вы не можете получить доступ к закрытым методам, но это обходной путь.

0 голосов
/ 30 октября 2008

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

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

Кстати, я парень из Java, поэтому пакет visiblilty в C # можно назвать совершенно другим. Достаточно сказать, что для доступа к этим методам два класса должны находиться в одном и том же пространстве имен.

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