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

How to mock methods in class under test with google test

本文关键字:测试 方法 模拟 何用 谷歌      更新时间:2023-10-16

考虑测试中的这个类:

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

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

但我也想设定对isTrue方法的期望值。谷歌测试有没有一个最佳实践——如何模拟被测试类的方法?

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

有一个小技巧你可以使用。定义这样的派生类:

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

这显然只适用于isTruevirtual的情况。

小心:请查看公司关于"专为测试而制作的代码"的测试指南,而不是测试真正的代码。在您的情况下(遗留代码库),这可能还可以。