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

时间:2010-05-13 13:18:14

标签: c# vb.net unit-testing .net-2.0 internals

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

  1. IUtilisateur
  2. IGroupe
  3. IUniteOrganisation
  4. 这些接口是在内部类(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;
            }
        }
    }
    

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

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

1 个答案:

答案 0 :(得分:5)

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