GMOCK - 模拟对象及其内部模拟方法

程序员

我正在为一个班级编写 GMOCK 测试用例:

class A{ .. void Text() .. };

现在 A 类的成员方法之一嵌入了 B 类类型的对象,并且还引用了静态成员方法:

void A::Text()
{
B bobj;
B::SMethod();
bobj->BMethod();
......
}

在这种情况下,我如何模拟 B 及其方法?

博扬·科马泽茨

A您可以测试从它派生的类,而不是 testing ,我们称之为TestableA. AmakeText() virtual和 override 中使用B. 另外,看看这个问题,了解更多关于如何使用静态方法模拟类的想法。

然而,最好的办法是打破现有之间的紧密相关性A,并B通过引入的接口(例如InterfaceB),并将其注入Text()SMethod()将成为接口的(非静态)成员。在生产中,您将注入ActualBwhereActualB::SMethod()调用static B::SMethod()在您将使用MockB::SMethod()的测试中,根据测试需求量身定制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章