代码
demo.h
#include <string>
using namespace std;
class Parent {
public:
virtual ~Parent() {}
virtual int getNum() const = 0;
virtual void setResult(int value) = 0;
virtual void print(const string &str) = 0;
virtual int calc(int a, double b) = 0;
};
class Target {
public:
Target(Parent *parent) :
parent_(parent)
{ }
int doThis()
{
int v = parent_->getNum();
parent_->setResult(v);
while (v -- > 0) {
parent_->print(to_string(v));
}
return parent_->getNum();
}
int doThat()
{
return parent_->calc(1, 2.2);
}
private:
Parent *parent_;
};
demo.cc
#include "demo.h"
#include "gmock/gmock.h"
class MockParent : public Parent {
public:
//! MOCK_[CONST_]METHODx(方法名, 返回类型(参数类型列表));
MOCK_CONST_METHOD0(getNum, int()); //! 由于 getNum

本文详细介绍了如何使用gtest和gmock进行单元测试,通过一个具体的例子展示了如何创建Mock类,设置期望行为,并进行测试。代码包括了`demo.h`和`demo.cc`的实现,以及`MockParent`类的定义。测试用例中,设置了对`Target`类方法的调用预期,并验证了结果。最后提供了Makefile用于编译和运行测试。
2423

被折叠的 条评论
为什么被折叠?



