如何自动测试COM对象的完整性?

时间:2010-03-19 09:04:41

标签: c++ testing visual-c++ com interface

每个COM对象都必须有integrity。简单来说,这意味着如果一个对象实现了3个接口 - ABC,并且我有A*指向该对象的指针,我必须能够成功{{ 1}} QueryInterface()B以及C我必须能够检索BA并拥有C我必须能够检索CA

现在我的对象实现了5个接口,我想测试它的完整性。自己编写上述所有内容的检查需要付出巨大努力。是否有工具或一些容易调整的代码或代码模式可以做到这一点?

2 个答案:

答案 0 :(得分:2)

我没有看到问题。如果实现A,B和C,那么接口A必须正确地为A,B,C和IUnknown进行QI。包括自己。所有接口的测试都是相同的,只需要一个带有IUnknown *参数的小函数。

答案 1 :(得分:1)

如果我理解正确,你想要证明你的实现遵守COM IUnknown规则(传递性,反身性等)并且你关注基于接口数量的指数爆炸吗?

如果您有组件类型库,您可以编写一个应用程序来确定coclasses / interfaces并发出代码来测试这些规则(此应用程序是通用的,可以与任何具有类型库的组件一起使用)。也许你甚至可以在网上找到一个(我没有搜索过)

最佳

阿德