Yif*_*ach 8 .net c# dll assemblies mocking
我有一个引用Microsoft DLL(Exchange Web服务)的应用程序.在我的单元测试中,我想用Mock替换Microsoft DLL.
什么适用于其他DLL,不能使用此DLL,因为我得到一个例外
定位的程序集的清单定义与程序集引用不匹配
我验证它具有相同的程序集版本,但我看到Microsoft DLL是以数字方式签名的,因此它有一个PublicKeyToken.这可能是我的应用程序正在寻找的吗?一个类似签名的DLL?
有没有一种方法可以引用DLL而不需要它的publickeytoken?
谢谢
Jak*_*cki 13
您无法模拟已签名的DLL.(如果你能,你会被黑手党雇用......)
模拟访问此dll中代码的代码.
创建一个Facade(如果你没有它),它包装了对Exchange dll中方法的访问.然后在测试中,您可以提供模拟外观.
通过外观/包装器保护代码免受任何第三方代码(程序集,Web服务,控件)的影响是一种很好的设计实践.如果第三方代码发生变化,即最小化影响风险,即.升级到较新版本的dll(所需更改将仅影响外观)并帮助进行测试.