目前,我从潜入全面进入单元测试的最大问题之一是,我写的代码中的很大比例很大程度上依赖于来自不同源的第三方COM对象,这些对象也倾向于相互交互(如果您需要了解,我正在使用多个帮助程序库为Microsoft Office编写加载项)。你如何单元测试与第三方COM对象交互并实例化的代码?
我知道我应该使用模拟对象,但在这种情况下我会如何处理?我可以看到,当我只需要传递一个对已经存在的对象的引用时,它相对容易,但是我的一些例程本身实例化外部COM对象,然后有时将它们从另一个库传递给某个其他外部COM对象。
这里最好的做法是什么?我是否应该让我的测试代码临时更改注册表中的COM注册信息,以便测试代码将实例化我的一个模拟对象?我应该注入修改过的类型库单元吗?还有哪些其他方法?
我将特别感谢Delphi的示例或工具,但同样会对更一般的建议和更高级别的解释感到满意。
感谢,
奥利弗
同意;并且因为所有与COM对象的交互(除了通过IDispatch的自动化调用)都使用COM接口,您应该只能够在您的模拟类中实现这些接口。 – rpetrich 2008-09-16 09:07:20