首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Gmock设置为QT (Windows)

将Gmock设置为QT (Windows)
EN

Stack Overflow用户
提问于 2019-07-11 06:53:33
回答 2查看 318关注 0票数 2

我正在尝试使用进行单元测试。我试着用linux来做它,它非常好,但是当我开始在Windows中执行它时。我发现设置与我对linux所做的完全不同。

现在,在我的中,我已经为我的项目设置了gtest。在我开始建立googlemock之前一切都很好。有人能告诉我如何在QT Creator中设置googlemock吗?(窗户)

我在.pro文件的源代码中添加了一些gmock文件,就像我对gtest文件所做的一样。另外,我已经添加了一些库,如libgmock.a和libgmock_main.a。

下面是问题结果Qt的图像

代码语言:javascript
复制
INCLUDEPATH += "gtest/include/"
INCLUDEPATH += "gtest/"
INCLUDEPATH += "../../"
INCLUDEPATH += "gmock/include/gmock/"
INCLUDEPATH += "gmock/include/"
INCLUDEPATH += "gmock/"
INCLUDEPATH += "../../"
FORMS += \
    ../calculator.ui
HEADERS += \
    ../calculator.h \
    ../button.h
SOURCES += \
    ../calculator.cpp \
    ../button.cpp \
    main.cpp \
    gtest/src/gtest-typed-test.cc \
    gtest/src/gtest-test-part.cc \
    gtest/src/gtest-printers.cc \
    gtest/src/gtest-port.cc \
    gtest/src/gtest-filepath.cc \
    gtest/src/gtest-death-test.cc \
    gtest/src/gtest-all.cc \
    gtest/src/gtest.cc \
    gmock/src/gmock-spec-builders.cc \
    gmock/src/gmock-matchers.cc \
    gmock/src/gmock-cardinalities.cc \
    gmock/src/gmock-all.cc \
    gmock/src/gmock.cc \
    gmock/src/gmock-internal-utils.cc
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock_main
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock_maind
else:unix: LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock_main
INCLUDEPATH += $$PWD/../../../Gmock_lib
DEPENDPATH += $$PWD/../../../Gmock_lib
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../Gmock_lib/ -lgmockd
else:unix: LIBS += -L$$PWD/../../../Gmock_lib/ -lgmock
INCLUDEPATH += $$PWD/../../../Gmock_lib
DEPENDPATH += $$PWD/../../../Gmock_lib

main.cpp

代码语言:javascript
复制
#include <gtest/gtest.h>
#include <QApplication>
#include "Calculator/calculator.h"
#include "Calculator/button.h"
#include "Calculator/calculator.h"
#include <gmock/gmock.h>



TEST (sumInMemory, clearMemoryF) {
    calculator cal;
    double x = cal.sumInMemory;
       EXPECT_EQ( x , 0.0);
}

TEST (functionTest, Subtest1) {
    calculator cal;
   int x = cal.equalClicked();

   EXPECT_NE( x , -1);
}

TEST (functionTest, Subtest2) {
    calculator cal;
   double x = cal.factorSoFar;

   EXPECT_EQ( x , 0.0);
}


int main (int argc, char *argv[])
{
    QApplication a(argc, argv);
    ::testing::InitGoogleTest(&argc, argv);
            return RUN_ALL_TESTS();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-15 05:42:44

我也遇到过同样的问题,我建议您下载其他版本的gmock。在我的例子中,我使用了gmock 1.7.0。有些旧版本有一些问题。只要按照编译器对你说的话就行了。

修正错误一步一步

票数 1
EN

Stack Overflow用户

发布于 2019-07-15 05:52:42

我的新.pro文件

代码语言:javascript
复制
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += console c++14

INCLUDEPATH += "gmock/include/"
INCLUDEPATH += "gmock/"
INCLUDEPATH += "gtest/include/"
INCLUDEPATH += "gtest/src/"
INCLUDEPATH += "gtest/"
INCLUDEPATH += "../../"

FORMS += \
    ../calculator.ui

HEADERS += \
    ../calculator.h \
    ../button.h \


SOURCES += \
    ../calculator.cpp \
    ../button.cpp \
    main.cpp \
    gtest/src/gtest.cc \
    gtest/src/gtest-all.cc \
    gtest/src/gtest-death-test.cc \
    gtest/src/gtest-filepath.cc \
    gtest/src/gtest-port.cc \
    gtest/src/gtest-printers.cc \
    gtest/src/gtest-test-part.cc \
    gtest/src/gtest-typed-test.cc

我的src文件中的项目是

代码语言:javascript
复制
gmock-spec-builders.cc
gmock-matchers.cc
gmock-internal-utils.cc
gmock-cardinalities.cc
gmock-all.cc
gmock-main.cc
gmock.cc

注意:我只对gtest使用src,并在我的测试文件中使用包含。我希望这能帮助到其他人

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56983270

复制
相关文章

相似问题

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