考虑这个测试类:

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

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

但我也想对isTrue方法设置期望。
Google测试是否有最佳做法,该如何模拟待测类的方法?

最佳答案

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

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

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

    using A::doSomething;
};

这显然仅在isTruevirtual时有效。

请当心:请检查贵公司关于“专门为测试而编写的代码”的测试准则,而不要测试真实的代码。在您的情况下(旧版代码库),这可能没问题。

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

10-11 23:20
查看更多