hexinlong 2017-06-18 08:17 采纳率: 0%
浏览 1847

gmock能模拟不是指针类型的成员变量吗?

各位大神,有关于gmock的问题,帮忙指点,下面这种情况Camera类中的Encoder成员变量,可以用gmock模拟行为吗?现在测试case每次走的都是源码,不是我的EncoderMock设定的返回值。如果可以,请指教,谢谢。
//camera.h
class Encoder
{
public:
virtual ~Encoder(){};
virtual int startRecord(int type);
};

class Camera
{
public:
Camera();

virtual ~Camera(){};

virtual int startRecord(int type);

private:
Encoder m_Encoder;
};
//camera.cpp
int Encoder::startRecord(int type)
{
printf("Encoder::startRecord\n");
if (type == 1)
{
printf("E:type == 1\n");
return 1;
}
else
{
printf("E:type == %d\n",type);
return 2;
}
}

int Camera::startRecord(int type)
{
return m_Encoder.startRecord(type);
}
//sampleRecordEncoderMock.h
class EncoderMock:public Encoder
{
public:
//virtual int startRecord(int type);
MOCK_METHOD1(startRecord, int(int));

public:
//int m_nStartRecordParam;
};
//ut.cpp
#include
#include "gtest/gtest.h"
#include "sampleRecordEncoderMock.h"
#include "camera.h"

using namespace std;
using ::testing::Return;
using ::testing::Eq;
TEST(RecordTest, typeVideo) {

EncoderMock  *encoderMock = new EncoderMock();

Camera  cam;
int nMockRet = 2;
EXPECT_CALL(*encoderMock, startRecord(Eq(1))).Times(1).WillOnce(Return(nMockRet));

int nTesterRet = cam.startRecord(1,muxMock);
EXPECT_EQ(2, nTesterRet);

delete encoderMock;

}

  • 写回答

2条回答 默认 最新

  • devmiao 2017-06-18 08:14
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 鸿业暖通修改详细负荷时闪退
  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体