4

我正在 VBNET 2.0(不能使用更高版本的 .NET)中构建一个 Active Directory 包装器,其中包含以下内容:

  1. 作家
  2. 集团
  3. 联合组织

这些接口是在内部类(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 中可用,以便我可以访问组件的内部类进行测试?否则,我怎么能做到这一点?

编辑这是像我一样进行的良好测试实践吗?

4

1 回答 1

5

是的,InternalsVisibleTo 属性在 vb.net 中可用,并且适用于 Friend 类型。

于 2010-05-13T13:21:50.243 回答