Единственный найденный мной обходной путь - это тот, который использовался в .NET Framework 1.1.
Поскольку InternalsVisibleToAttribute
не применим в .NET 2.0 Visual Basic, единственный найденный мной обходной путь - этовключить мои тесты в тот же проект, что и моя библиотека.Кроме того, необходимо проделать некоторую дальнейшую работу.
- Создайте себе новый CONFIG для компиляции под названием «Тесты» (здесь вы можете выбрать «Release» / «Debug»);
- Создайте новую папку с именем «Tests» в своем проекте;
- Добавьте новый класс, который будет проверять членов Friend (внутренний в C #);
- Первая строка кода в этом класседолжно быть:
#if CONFIG = "Tests" then ... #end if
; - Поместите свой код между этой директивой IF компилятора.
Например, если у меня есть следующий класс Friend:
Friend Class MyFactory
Friend Property Property1 As Object
Get
Return _field1
End Get
Set (ByVal value As Object)
_field1 = value
End Set
End Property
Friend Sub SomeSub(ByVal param1 As Object)
' Processing here...
End Sub
End Class
Затем, если вы хотите протестировать этот класс в .NET 2.0 Visual Basic, вам нужно будет создать тестовый класс в том же проекте, где находится класс MyFactory
.Этот класс должен выглядеть следующим образом:
#If CONFIG = "Tests" Then
Imports NUnit.Framework
<TestFixture()> _
Public Class MyFactoryTests
<Test()> _
Public Sub SettingProperty1Test
' Doing test here...
End Sub
End Class
#End If
Поскольку у вас есть директива компилятора, указывающая компилятору компилировать и включать этот класс только при выборе CONFIG «Tests», вы не получите этот класс«Отладка» или в режиме «Выпуск».Этот класс даже не будет частью библиотеки, поскольку он не загрязняет вашу библиотеку без необходимости, и это в любом случае позволяет вам протестировать класс Friend.
Это самый умный способ, который я нашел, чтобы обойти эту проблемув Visual Basic .NET 2.0.