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++ - 通过用户定义的构造函数初始化

java - NDK : Pass text field value to c++ string

Python unittest 和 mock : Check if a function gets called, 然后停止测试

c++ - 如何在将测试 exe 与 gradle 链接时排除第二个主程序?

c++ - 在C++单元测试上下文中,抽象基类是否应具有其他抽象基类作为函数参数?

c++ - 如何部署依赖动态库的应用程序?

C# 到 C++ 多态性

spring-mvc - MockMVC 对异步服务执行后期测试

c# - DotNetOpenAuth:模拟 ClaimsResponse

c++ - 运行测试直到失败