我正在研究使用VS 8.0的非托管C ++应用程序的不同测试框架
看起来像googlemock要求原始类继承自抽象类。然后抽象类被谷歌模拟用作父类来生成模拟。
在我的遗留代码中,首先我的解决方案中的原始类不是从抽象类派生的,而是非抽象类,并且它们中始终不存在虚函数。此外,在大多数情况下,有类似D类的父母链来自C类,它来自B类,依此类推。因此,在这种情况下创建一个接口将更加复杂,因为在模拟对象中需要实现所有虚拟功能。
所以我只想知道我对googlemock和test的理解是否正确,是否有一个选项不能创建抽象类,只是简单地使用现有的类来创建模拟。
谢谢
答案 0 :(得分:0)
看起来googlemock需要继承原始类 一个抽象的类。然后将抽象类用作父类 谷歌模拟生成模拟。
不,您对Google C++ Mocking Framework
的理解是错误的。从abstract中继承mocking类(你试图模拟的类)是design suggestion,但不是技术要求。技术要求是:
注意:您可以看到,您不必担心您不需要通过模拟对象调用的成员函数。
在我的遗留代码中,首先我的解决方案中的原始类不是 派生自抽象类,但非抽象类和那里 它们中始终是虚函数。 此外,在大多数情况下,像D类一样有一系列父母 源自C类的C类,依此类推。
这不是问题,而您不需要调用非虚拟成员函数。
所以我只想知道我对googlemock和测试的理解是否正确 正确,如果有一个n选项不创建抽象类和 只需使用现有的类来创建模拟。
正如我所说,你不必担心基础抽象类,但无论如何,如果你现有的代码不满足你需要修改它的要求。有时对于某人来说这是不可接受的。