首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Eclipse构建C++简单代码的GoogleMock问题

使用Eclipse构建C++简单代码的GoogleMock问题
EN

Stack Overflow用户
提问于 2019-05-25 01:42:35
回答 1查看 231关注 0票数 0

在MobileTest.h中,我有:

代码语言:javascript
复制
#include <gtest/gtest.h>
#include <gmock/gmock.h>
using ::testing::Return;

#include "Mobile.h"

class MockedCamera : public Camera {
public:
    MOCK_METHOD0(ON, bool());
    MOCK_METHOD0(OFF,bool());
};

Mobile.h代码:

代码语言:javascript
复制
#ifndef __MOBILE_H__
#define __MOBILE_H__

#include <iostream>
using namespace std;

#include "Camera.h"

class Mobile {
private:
    Camera *pCamera;
public:
    Mobile();
    Mobile(Camera *pCamera);
    bool powerOn();
    bool powerOff();
    virtual ~Mobile(){};
};

#endif /* __MOBILE_H__ */

Camera.h头文件

代码语言:javascript
复制
#ifndef __CAMERA_H__
#define __CAMERA_H__

#include <iostream>
using namespace std;

class Camera {
public:
    Camera();
    virtual bool ON();
    virtual bool OFF();
    virtual ~Camera(){};
};

#endif /* __CAMERA_H__ */

这是Udemy C++课程的一个简单代码,但是当使用eclipse构建时,它给我错误,没有移动测试。h MOCK_METHOD0宏调用:

代码语言:javascript
复制
Symbol 'ArgumentCount' could not be resolved
The type 'testing::internal::FunctionMocker' must implement the inherited pure virtual method 'testing::internal::UntypedFunctionMockerBase::UntypedPerformAction' 

这是项目的makefile,当我尝试使用make命令时,它会给我很多与gtest相关的错误:

代码语言:javascript
复制
SRC = $(wildcard src/*.cpp test/*.cpp)

OBJS = $(SRC:.cpp=.o)

CXXFLAGS = -std=c++14

LIBS = -pthread libgtest.a

INC = -I googletest/googletest \
      -I googletest/googletest/include \
      -I googlemock/googlemock \
      -I googlemock/googlemock/include \
      -I src \
      -I test

EXE = mobileTest.exe

all: $(OBJS)
    cp -f $(OBJS) .
    g++-7 -o $(EXE) $(CXXFLAGS) $(OBJS) $(LIBS) $(INC)
    rm -f $(OBJS)

%.o: %.cpp
    g++-7 -c $(CXXFLAGS) $(INC) $< -o $@

.PHONY: clean

clean:
    rm -f *.o *.exe

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-25 05:40:40

我使用gtest和gmock作为库。

gtest库的项目文件包含以下源文件

代码语言:javascript
复制
SOURCES += ../googletest/src/gtest.cc \
../googletest/src/gtest-death-test.cc \
../googletest/src/gtest-filepath.cc \
../googletest/src/gtest-port.cc \
../googletest/src/gtest-printers.cc \
../googletest/src/gtest-test-part.cc \
../googletest/src/gtest-typed-test.cc

gmock库的项目文件包含以下源文件

代码语言:javascript
复制
SOURCES += ../googlemock/src/gmock-cardinalities.cc \
       ../googlemock/src/gmock-internal-utils.cc \
       ../googlemock/src/gmock-matchers.cc \
       ../googlemock/src/gmock-spec-builders.cc \
       ../googlemock/src/gmock.cc
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56297336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档