如何使用谷歌测试模拟测试类中的方法

时间:2013-11-22 06:41:18

标签: c++ mocking googletest

考虑这个被测试的课程:

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

我想测试doSomething在其实现中调用isTrue

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

1 个答案:

答案 0 :(得分:4)

将我的评论转化为答案......

你可以使用一点点黑客。像这样定义派生类:

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

    using A::doSomething;
};

这显然仅在isTruevirtual时才有效。

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