考虑这个测试类:
class A
{
public:
bool isTrue();
void doSomething();
};
我想测试
doSomething
,它在实现中调用isTrue
。但我也想对
isTrue
方法设置期望。Google测试是否有最佳做法,该如何模拟待测类的方法?
最佳答案
将我的评论变成答案...
您可以使用一些技巧。像这样定义一个派生类:
class B : public A {
public:
MOCK_METHOD0(isTrue, bool());
using A::doSomething;
};
这显然仅在
isTrue
为virtual
时有效。请当心:请检查贵公司关于“专门为测试而编写的代码”的测试准则,而不要测试真实的代码。在您的情况下(旧版代码库),这可能没问题。
关于c++ - 如何使用Google Test模拟正在测试的类中的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20138650/