C# 单元何时测试与负载相关的组件?
我需要更好地理解何时加载程序集进行单元测试 我有一个类(C# 单元何时测试与负载相关的组件?,c#,unit-testing,C#,Unit Testing,我需要更好地理解何时加载程序集进行单元测试 我有一个类(ClassDerived),我正在进行单元测试ClassDerived派生自另一个类(ClassBase) 在运行第一个测试之前,我试图使用ClassInitialize属性初始化ClassDerived。单元测试项目同时引用了ClassBase和ClassDerived 在ClassInitialize方法中执行代码时,我注意到包含ClassDerived的程序集尚未加载 我通过查看调用GetAssemblies()的返回值来确定这一点
ClassDerived
),我正在进行单元测试ClassDerived
派生自另一个类(ClassBase
)
在运行第一个测试之前,我试图使用ClassInitialize
属性初始化ClassDerived
。单元测试项目同时引用了ClassBase
和ClassDerived
在ClassInitialize
方法中执行代码时,我注意到包含ClassDerived
的程序集尚未加载
我通过查看调用GetAssemblies()
的返回值来确定这一点
奇怪的是,包含ClassBase
的程序集被加载了
我尝试将初始化代码移动到单元测试构造函数中,得到了相同的结果
有人知道发生了什么吗?我怀疑加载时间不是单元测试特有的。在.net 3.5中,我看到了以下内容: 给定具有方法“Y”的程序集“X”,并且方法“Y”使用程序集“Z”中的某些内容
在这种情况下,程序集“Z”将在执行方法“Y”之前加载。net 4.0据说在许多方面引入了更大的“惰性”,因此我不知道上述观察是否仍然正确。这是正确的。我昨晚下班时意识到了这一点。添加引用并不意味着将加载asembly。然而,当我在构造函数中使用该程序集中的类型时,一切都正常了。我的Win32经验对我不利。
var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();