目前阻碍我全力投入单元测试的最大问题之一是,我编写的代码很大一部分严重依赖于来自不同来源的第三方COM对象,这些对象也倾向于相互交互(如果你需要知道的话,我正在使用几个辅助库为Microsoft Office编写外接程序)。
我知道我可能应该使用mock对象,但在这种情况下我该怎么做呢?我可以看到,当我只需要传递对一个已经存在的对象的引用,但我的一些例程自己实例化外部COM对象,然后有时将它们传递给另一个库中的其他外部COM对象时,这相对容易。
这里的最佳实践方法是什么?我是否应该让我的测试代码临时更改注册表中的COM注册信息,以便测试代码将实例化我的一个模拟对象?我应该注入修改后的类型库单元吗?还有什么其他方法?
我会特别感谢Delphi的例子或工具,但也会很乐意提供更一般的建议和更高层次的解释。
谢谢
奥利弗