Должен ли [TestMethod] быть общедоступным? Какие последствия, если это не так?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Должен ли [TestMethod] быть общедоступным? Какие последствия, если это не так?

Сообщение Anonymous »

Я использую средства тестирования, предоставляемые Microsoft.VisualStudio.TestPlatform.TestFramework. У меня есть тестовый метод, украшенный [TestMethod]. Я хочу реализовать этот тест для различных комбинаций параметров, используя [DataRow]. Один из параметров, который понадобится этому методу, — это тип перечисления, объявленный как внутренний в другой сборке; сборка, в которой определен тип перечисления, предоставляет сборке, содержащей модульные тесты, доступ к своим внутренним компонентам через InternalsVisibleTo.

Методы модульного тестирования обычно являются общедоступными внутри общедоступного класса, поэтому насколько я могу судить. Когда дело доходит до этого метода модульного тестирования, либо метод тестирования должен быть недоступен извне сборки модульного теста (достигается путем его приватного или внутреннего, либо путем создания содержащего его тестового класса внутренним), либо перечисление должно быть общедоступным. Делать перечисление общедоступным было бы неуместно, поэтому было бы правильным сделать метод тестирования внутренним.

Есть ли какие-либо возможные негативные последствия, если сделать метод модульного тестирования внутренним?< /p>

Этот вопрос, несомненно, простой и имеет простой ответ. Я спрашиваю об этом, потому что мне совершенно не удалось найти ответ на этот вопрос в Интернете. Все, что я могу найти, это дискуссии о том, следует ли тестировать частные методы или нет.

Примечание. Если вы дадите комментарий или ответ, который не отвечает на мой вопрос, но вместо этого предлагает или подразумевает, что проверять внутренние члены сборки с помощью InternalsVisibleTo неправильно, тогда я сразу отклоню ваш ответ.

Примечание 2: Первое в этом случае можно использовать строковый параметр вместо параметр enum, используйте Enum.Parse в методе тестирования и передайте все соответствующие параметры в виде строк, созданных с помощью оператора nameof. Мне это не нравится, но, возможно, это наименее плохой обходной путь.

Подробнее здесь: https://stackoverflow.com/questions/545 ... if-it-isnt
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»