c# - 单元测试何时加载依赖程序集?

标签 c# unit-testing

我需要更好地了解何时为单元测试加载程序集。

我有一个类 (ClassDerived),我正在对其进行单元测试。 ClassDerived 派生自另一个类 (ClassBase)。

我试图在运行第一个测试之前使用 ClassInitialize 属性来初始化 ClassDerived。单元测试项目引用了 ClassBaseClassDerived

当执行 ClassInitialize 方法中的代码时,我注意到包含 ClassDerived 的程序集尚未加载。

我通过查看调用 GetAssemblies() 的返回值来确定这一点。

var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();

奇怪的是包含 ClassBase 的程序集被加载了。

我尝试将初始化代码移至单元测试构造函数,结果相同。

有人知道这是怎么回事吗?

最佳答案

我怀疑加载时间不是单元测试特有的。在 .net 3.5 中,这是我所看到的:

给定具有方法“Y”的程序集“X”,并且方法“Y”使用程序集“Z”中的某些内容。

在这种情况下,程序集“Z”将在方法“Y”执行之前加载。 .net 4.0 据推测在许多方面引入了更大的“懒惰”,所以我不知道上述观察是否仍然正确。

关于c# - 单元测试何时加载依赖程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8844004/

相关文章:

c# - 在 Xdocument 中添加 xmlns 命名空间

c# - 在使用 nSubstitute 和 Autofixture 作为 DI 容器的单元测试中,如何获取模拟对象?

c# - 调用 Dispatch/LUIS 模型时操作返回无效状态代码 ‘Unauthorized’

c# - 检查现有项目不起作用

c# - 是否有类似于 C# 中的 NameValueCollection 集合的替代方案

c# - 如何测试Web请求超时

node.js - 如何模拟从 fs.readFile 返回的错误以进行测试?

python - Django 模拟补丁无法正常工作

unit-testing - 如何使用 `with-redefs` 始终从函数中抛出异常

angularjs - 如何使用 Angular/Karma/Jasmine 正确测试放置(或发布)请求?