我试图用一个依赖于COM接口的对象做TDD.我虽然在进行开发测试时嘲笑COM接口,但在集成测试中做到了.
但是,我无法模拟COM接口,我尝试使用Moq,它会引发异常:
System.TypeLoadException未被用户代码处理Message =无法从程序集'DynamicProxyGenAssembly2,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'Castle.Proxies.iTunesAppProxy'.该类型被标记为符合类型等效的条件,但它具有通用参数,或者它不是结构,COM导入的接口,枚举或委托
是否可以与其他框架一起使用?你如何使用COM依赖对象进行TDD?
在此先感谢!或代表
我建议您拥有 COM 对象的接口,这就是依赖倒置原则发挥作用的地方。
如果您无权访问源代码,则必须创建自己的抽象来包装 COM 对象,否则您的代码中将会有第三方调用。
[编辑]
现在抽象应该可以被嘲笑了。包装器的实际实现将把 COM 对象作为HAS-A关系。
然后您将需要对实施进行集成测试。
您需要将 COM 对象本身视为类似于数据库、图形渲染引擎或 Web 服务的东西。
| 归档时间: |
|
| 查看次数: |
1268 次 |
| 最近记录: |