c++ - 如何使用谷歌测试模拟被测类中的方法

标签 c++ mocking googletest

考虑这个被测类:

class A
{
public:
    bool isTrue();
    void doSomething();
};

我想测试在其实现中调用 isTruedoSomething

但我还想对 isTrue 方法设置期望值。 谷歌测试是否有最佳实践如何模拟被测类的方法?

最佳答案

将我的评论变成答案...

您可以使用一些技巧。像这样定义派生类:

class B : public A {
public:
    MOCK_METHOD0(isTrue, bool());

    using A::doSomething;
};

这显然只有在 isTruevirtual 时才有效。

注意:检查贵公司关于“专门为测试而制作的代码”的测试指南,而不是测试真实代码。在您的情况下(遗留代码库),这可能没问题。

关于c++ - 如何使用谷歌测试模拟被测类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20138650/

相关文章:

c++ - 每个类在 Gtest 中只调用一次代码

c++ - 使用 C++ 模板参数作为另一个模板的参数?

c++ - C i2c芯片读取MCP9800突然开始失败

javascript - 如何在 Jest 中重置模拟值?

Android - 仪器测试期间应用程序的模拟方法

googletest - Googlemock - WillOnce 中的多个操作导致构建错误

c++ - 无法引用测试夹具的默认构造函数

c++ - 将哈希表的 [] 运算符重载到 vector

c++ - 双端队列有下标运算符的原因是什么?

c# - 伪造派生类但调用真正的构造函数并忽略基类构造函数