Я создаю оболочку 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, чтобы я мог получить доступ к внутренним классам ассембли для моих тестов? Иначе, как мне этого добиться?
РЕДАКТИРОВАТЬ Это хорошая практика тестирования, чтобы продолжить, как я?