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++ - 从/向二进制文件读取/写入十六进制字节

c++ - 为 float 组动态分配内存

sql-server - 在没有实际的 SQL Server 数据库启动和运行的情况下,我将如何配置工作量测试工具来模拟 Entity Framework 的 DbContext?

cuda - 如何隐藏 NVCC 的 "function was declared but never referenced"警告?

c++ - 如何在进行 GoogleTest 时跳过源代码中的部分“代码”

c++ - 我可以从 opengl 的显示屏上调用我的回调函数吗

c++ - 了解 std::copy

angularjs - 测试 ng-transclude 不起作用

java - 如何模拟静态变量,该变量是通过对该静态变量的静态方法调用来初始化的

c++ - GMock 死亡案例 - 模拟函数未被调用