单元测试以验证WinForms应用程序不会多次加载程序集

时间:2011-06-23 17:38:42

标签: c# winforms unit-testing nunit

我正在尝试编写一个单元测试(NUnit):

  1. 创建某个表单的实例。
  2. 连接AppDomain的相关AssemblyLoad事件,以构建已加载的程序集名称列表。
  3. 如果同一个程序集加载两次,则失败。
  4. 否则 - 通过。
  5. 我似乎无法得到这个逻辑......测试总是通过。

    可以这样做吗?

2 个答案:

答案 0 :(得分:8)

很难让您的设备测试失败。 CLR已确保程序集仅加载一次。非常重要的是,多次加载相同的程序集会导致很难在运行时诊断出错误。

你必须使用可怕的Assembly.LoadFile()来触发失败。避免测试你不应该开始做的事情。

答案 1 :(得分:1)

在AppDomain中加载程序集后,无法再次加载它,并且似乎也没有Assembly.Unload方法。好吧,从技术上讲,如果加载了unload all of the AppDomains,你可以卸载程序集。