私はVBNET 2.0でActive Directoryラッパーを構築しています(後で.NETを使用することはできません)。
- IUtilisateur
- IGroupe
- IUnite組織
これらのインターフェイスは内部クラス (VBNET の Friend) で実装されるため、各インターフェイスを内部クラスで開始するためにファサードを実装したいと考えています。これにより、アーキテクチャの柔軟性が向上します。
ここで、これらのクラス (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 で利用できるかどうか疑問に思っていましたか? そうでなければ、どうすればこれを達成できますか?
編集これは私のように進めるための良いテスト方法ですか?