Я строю обертку Active Directory в VBNET 2.0 (не может использовать позже .NET), в котором у меня есть следующие:Лучшая практика тестирования модулей?/C# InternalsVisibleTo() для VBNET 2.0 во время тестирования?
- IUtilisateur
- IGroupe
- IUniteOrganisation
Эти интерфейсы реализованы во внутренних классах (Friend in 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 для своих тестов? В противном случае, как я мог достичь этого?
EDIT Является ли это хорошей практикой тестирования для продолжения, как я?
Работает в .NET 2.0? Какую сборку я должен импортировать, чтобы использовать ее? –
Он находится в 'System.Runtime.CompilerServices'. Больше информации здесь: http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute(VS.90).aspx?ppud=4 –
И это хорошая практика для тестирования или есть ли другое лучшее решение? –