В моем последнем вопросе: Лучшая практика модульного тестирования? / C # атрибут InternalsVisibleTo () для VBNET 2.0 во время тестирования? , я спрашивал о InternalsVisibleToAttribute.
Я прочитал документацию о том, как его использовать, и все хорошо и понятно. Однако я не могу создать экземпляр класса Groupe из моего проекта Testing.
Я хочу иметь возможность создавать экземпляр моего внутреннего класса в моей сборке-обертке из моей тестовой сборки.
Любая помощь приветствуется!
РЕДАКТИРОВАТЬ # 1
Вот ошибка времени компиляции, которую я получаю, когда do пытаюсь создать экземпляр моего типа:
Erreur 2 'Carra.Exemples.Blocs.ActiveDirectory.Groupe' n'est pas доступный через контекст, автомобиль называется 'Private'. C: \ Open \ Projects \ Exemples \ Src \ Carra.Exemples.Blocs.ActiveDirectory \ Carra.Exemples.Blocs.ActiveDirectory.Tests \ GroupeTests.vb 9 18 Carra.Exemples.Blocs.ActiveDirectory.Tests
(Это говорит о том, что мой тип не доступен в этом контексте, потому что он личный.) Но это Друг (внутренний)!
РЕДАКТИРОВАТЬ # 2
Вот фрагмент кода, предложенный для класса Groupe, реализующего открытый интерфейс IGroupe:
#Region "Importations"
Imports System.DirectoryServices
Imports System.Runtime.CompilerServices
#End Region
<Assembly: InternalsVisibleTo("Carra.Exemples.Blocs.ActiveDirectory.Tests")>
Friend Class Groupe
Implements IGroupe
#Region "Membres privés"
Private _classe As String = "group"
Private _domaine As String
Private _membres As CustomSet(Of IUtilisateur)
Private _groupeNatif As DirectoryEntry
#End Region
#Region "Constructeurs"
Friend Sub New()
_membres = New CustomSet(Of IUtilisateur)()
_groupeNatif = New DirectoryEntry()
End Sub
Friend Sub New(ByVal domaine As String)
If (String.IsNullOrEmpty(domaine)) Then Throw New ArgumentNullException()
_domaine = domaine
_membres = New CustomSet(Of IUtilisateur)()
_groupeNatif = New DirectoryEntry(domaine)
End Sub
Friend Sub New(ByVal groupeNatif As DirectoryEntry)
_groupeNatif = groupeNatif
_domaine = _groupeNatif.Path
_membres = New CustomSet(Of IUtilisateur)()
End Sub
#End Region
И код пытается его использовать:
#Region "Importations"
Imports NUnit.Framework
Imports Carra.Exemples.Blocs.ActiveDirectory
#End Region
<TestFixture()> _
Public Class GroupeTests
<Test()> _
Public Sub CreerDefaut()
Dim g As Groupe = New Groupe()
Assert.IsNotNull(g)
Assert.IsInstanceOf(Groupe, g)
End Sub
End Class
РЕДАКТИРОВАТЬ # 3
Черт! Я только что заметил, что не импортировал сборку в свой регион импорта.
Нет, ничего не решил = (
Спасибо!