qt - 将 Gmock 设置为 QT (Windows)

标签 qt googlemock

我正在尝试使用 QT Creator 进行单元测试。我尝试在 Linux 上执行此操作,效果非常好,但是当我开始在 Windows 中执行此操作时。我发现设置与我对 linux 所做的设置有很大不同。

现在,在我的 Windows QT Creator 中,我已经为我的项目设置了 gtest。一切都工作正常,直到我开始设置 googlemock。有人可以告诉我如何在 QT Creator 中设置 googlemock 吗? (窗口)

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

这是 Qt 问题结果的图像

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

#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();
}

最佳答案

我也遇到了同样的问题,建议您下载其他版本的gmock。就我而言,我使用 gmock 1.7.0。一些旧版本有一些问题/问题。只需遵循编译器告诉你的内容即可。

一步一步修复错误

关于qt - 将 Gmock 设置为 QT (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56983270/

相关文章:

c++ - 在 Qt 中获取父布局

visual-studio-2017 - 已安装 GoogleTest 后如何在 Visual Studio 2017 中配置 GoogleMock?

unit-testing - 在 C++ 中使用 gmock 模拟具体类

c++ - 以编程方式从节能或屏幕保护程序中唤醒操作系统

c++ - Qt 线程计算输出到 GUI 中的自己的小部件?

c++ - QNetworkReply 和 301 重定向

c++ - mock_method 上的 gmock 编译错误(在 testing::internal::FunctionMocker 中)

c++ - 在取消线程上使用 QFuture 释放内存

c++ - 如何使用 GMock 模拟 OpenCV 相机,或者如何使用 GTest 测试使用相机的方法?

c++ - googlemock - 模拟一个返回复杂数据类型的方法