Модульное тестирование класса Friend из другой сборки - PullRequest
0 голосов
/ 03 мая 2019

У меня есть решение, которое содержит две сборки, обе в VB.Net. Одна сборка содержит мой код, который в основном включает Friend Классы; а другая сборка содержит код, предназначенный для тестирования модуля первой сборки. Я полагаюсь на MSTest.

Как мне провести модульное тестирование моих Friend классов?

Я видел в нескольких руководствах и документации, что C # имеет <Assembly(): InternalsVisibleTo("AssemblyName")>, но я понимаю, что это не доступно для VB.

При поиске на SO я нашел только одно совпадение , что предлагает интересный обходной путь. Я готов следовать этой альтернативе, если нет лучшего варианта. Я, однако, очень удивлен, что нет чистого способа достичь чего-то, что я хотя и был довольно элементарным.

1 Ответ

1 голос
/ 06 мая 2019

Вы правы, что когда-то InternalsVisibleToAttribute был доступен только в C # и не работал в VB.Тем не менее, вы ошибаетесь, полагая, что это все еще не работает в VB сегодня.Время, когда этот атрибут не работал в VB, давно прошло.Если вы не используете слишком старые инструменты, этот атрибут будет работать в VB, как и в C #.

Если он не работает для вас, это почти наверняка по другой причине.Если не удается скомпилировать, говоря, что тип не существует, это либо потому, что вы не ссылаетесь на необходимую сборку, либо не импортируете ее пространство имен.Если ваш проект ориентирован на .NET Core или .NET Standard, вам не нужно ссылаться на какие-либо дополнительные сборки, но если вы нацелены на .NET Framework, вам нужно добавить ссылку на System.Runtime.dll (еслиеще не упоминается).И затем, независимо от того, на какую платформу вы нацеливаетесь, вам нужно либо полностью указать имя класса, либо импортировать его пространство имен, которое равно System.Runtime.CompilerServices.

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