单元测试最佳实践?测试时,VBNET 2.0的/ C#InternalsVisibleTo()属性?

Wil*_*ler 4 c# vb.net unit-testing internals .net-2.0

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

  1. IUtilisateur
  2. IGroupe
  3. IUniteOrganisation

这些接口在内部类(VBNET中的Friend)中实现,因此我想实现一个façade,以便将每个接口与其内部类一起发送.这将使架构具有更好的灵活性等.

现在,我想在同一解决方案中的不同项目中测试这些类(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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我最近听说过InternalsVisibleTo()属性.我想知道它是否在VBNET 2.0/VS2005中可用,以便我可以访问我的测试的assmebly的内部类?否则,我怎么能实现这个目标?

编辑这是一个很好的测试练习,像我一样继续吗?

Joe*_*orn 5

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