Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单元何时测试与负载相关的组件?_C#_Unit Testing - Fatal编程技术网

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();