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