Я создаю оболочку Active Directory в VBNET 2.0 (не могу использовать более позднюю версию .NET), в которой у меня есть следующее:
- IUtilisateur
- IGroupe
- IUniteOrganisation
Эти интерфейсы реализованы во внутренних классах (Friend в VBNET), поэтому я хочу реализовать фасад, чтобы связать каждый из интерфейсов с их внутренними классами. Это повысит гибкость архитектуры и т. Д.
Теперь я хочу протестировать эти классы (Utilisateur, Groupe, UniteOrganisation) в другом проекте в том же решении. Однако эти классы являются внутренними. Я хотел бы иметь возможность создавать их экземпляры, не просматривая мой фасад, но только для этих тестов, не более того.
Вот фрагмент кода, чтобы проиллюстрировать это:
public static class DirectoryFacade {
public static IGroupe CreerGroupe() {
return new Groupe();
}
}
// Then in code, I would write something alike:
public partial class MainForm : Form {
public MainForm() {
IGroupe g = DirectoryFacade.CreerGroupe();
// Doing stuff with instance here...
}
}
// My sample interface:
public interface IGroupe {
string Domaine { get; set; }
IList<IUtilisateur> Membres { get; }
}
internal class Groupe : IGroupe {
private IList<IUtilisateur> _membres;
internal Groupe() {
_membres = new List<IUtilisateur>();
}
public string Domaine { get; set; }
public IList<IUtilisateur> Membres {
get {
return _membres;
}
}
}
Недавно я слышал об атрибуте InternalsVisibleTo (). Мне было интересно, доступен ли он в VBNET 2.0 / VS2005, чтобы я мог получить доступ к внутренним классам assmebly для моих тестов? Иначе как я мог этого добиться?
ИЗМЕНИТЬ. Это хорошая практика тестирования, чтобы продолжать, как я?