gMock for Dummies - 如何开始? (Visual-Studio-2019)
gMock for Dummies - How to Getting Started? (Visual-Studio-2019)
我试图根据 gMock for Dummies 的入门创建一个非常简单的 Mock Class。
我在 VS Studio 2019 中新建了一个空白项目
我 运行 包管理器 Install-Package gmock -Version 1.8.1
按照这个答案
已创建的 packages.config 文件
<?xml version="1.0" encoding="utf-8"?>`
<packages>
<package id="gmock" version="1.8.1" targetFramework="native" />
</packages>
我创建了 1 个文件 Source.cpp
class Turtle {
virtual void PenUp();
};
void Turtle::PenUp() {
return;
}
#include "gmock/gmock.h"
class MockTurtle : public Turtle {
public:
MOCK_METHOD(void, PenUp, (), (override)); // not working see Pic1
MOCK_METHOD0(PenUp, void()); // not working see Pic2
};
第二个示例尝试使用类似此答案的语法
图1:
图2:
我现在可以编译我的解决方案了:
- 我在 VS Studio 2019 中创建了一个新的空白项目
- 我克隆了 google 存储库 googletest
在我添加的项目属性中C/C++添加。包含目录
path\to\repo\googlemock
path\to\repo\googlemock\include
path\to\repo\googlemock\include\gmock
path\to\repo\googlemock\include\gmock\internal
path\to\repo\googletest
path\to\repo\googletest\include
path\to\repo\googletest\include\gtest
path\to\repo\googletest\include\gtest\internal
我创建了 1 个文件Source.cpp
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "src/gmock-cardinalities.cc"
#include "src/gmock-internal-utils.cc"
#include "src/gmock-matchers.cc"
#include "src/gmock-spec-builders.cc"
#include "src/gmock.cc"
#include "src/gtest.cc"
#include "src/gtest-death-test.cc"
#include "src/gtest-filepath.cc"
#include "src/gtest-port.cc"
#include "src/gtest-printers.cc"
#include "src/gtest-test-part.cc"
#include "src/gtest-typed-test.cc"
class Turtle {
public:
virtual ~Turtle() {}
virtual void PenUp() = 0;
};
class MockTurtle : public Turtle {
public:
//MOCK_METHOD0(PenUp, void()); // working =)
MOCK_METHOD(void, PenUp, (), (override)); // working =)
};
int main(int, const char* []) {
return 0;
}
想法来自this blog post
这是如何做到的,Windows 方式。您需要在此处 Windows cmake
安装 https://cmake.org/download/。因为 Cygwin 中捆绑的 cmake
NOT 兼容 Visual Studio,您需要 cmake.exe
Windows 然后 运行 它来自 DOS 终端。我有 cygwin
用于其他事情,但是对于所有事情 Visual Studio,需要在 DOS 终端中按照 Window 的方式完成。我正在使用 Visual Studio 2019.
git clone https://github.com/google/googletest.git
然后打开DOS终端,赋予PATH已经可以找到cmake.exe
。转到克隆 googletest
存储库的位置。
cd googletest
mkdir c:\opt
mkdir build
cd build
cmake -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX=c:\opt ..
它将生成通常的googletest-distribution.sln
Visual Studio 解决方案文件。现在是使用鼠标的时候了。 Double-click 在此解决方案文件上,它将启动 Visual Studio IDE。构建 ALL_BUILD 和 INSTALL。 ALL_BUILD
将生成 *.lib
个文件,INSTALL
会将这些文件复制到 c:\opt
位置。此后,gtest/gmock 库和 headers 应位于 C:\opt\
文件夹中。
我试图根据 gMock for Dummies 的入门创建一个非常简单的 Mock Class。
我在 VS Studio 2019 中新建了一个空白项目
我 运行 包管理器
Install-Package gmock -Version 1.8.1
按照这个答案已创建的 packages.config 文件
<?xml version="1.0" encoding="utf-8"?>` <packages> <package id="gmock" version="1.8.1" targetFramework="native" /> </packages>
我创建了 1 个文件 Source.cpp
class Turtle { virtual void PenUp(); }; void Turtle::PenUp() { return; } #include "gmock/gmock.h" class MockTurtle : public Turtle { public: MOCK_METHOD(void, PenUp, (), (override)); // not working see Pic1 MOCK_METHOD0(PenUp, void()); // not working see Pic2 };
第二个示例尝试使用类似此答案的语法
图1:
图2:
我现在可以编译我的解决方案了:
- 我在 VS Studio 2019 中创建了一个新的空白项目
- 我克隆了 google 存储库 googletest
在我添加的项目属性中C/C++添加。包含目录
path\to\repo\googlemock path\to\repo\googlemock\include path\to\repo\googlemock\include\gmock path\to\repo\googlemock\include\gmock\internal path\to\repo\googletest path\to\repo\googletest\include path\to\repo\googletest\include\gtest path\to\repo\googletest\include\gtest\internal
我创建了 1 个文件Source.cpp
#include "gmock/gmock.h" #include "gtest/gtest.h" #include "src/gmock-cardinalities.cc" #include "src/gmock-internal-utils.cc" #include "src/gmock-matchers.cc" #include "src/gmock-spec-builders.cc" #include "src/gmock.cc" #include "src/gtest.cc" #include "src/gtest-death-test.cc" #include "src/gtest-filepath.cc" #include "src/gtest-port.cc" #include "src/gtest-printers.cc" #include "src/gtest-test-part.cc" #include "src/gtest-typed-test.cc" class Turtle { public: virtual ~Turtle() {} virtual void PenUp() = 0; }; class MockTurtle : public Turtle { public: //MOCK_METHOD0(PenUp, void()); // working =) MOCK_METHOD(void, PenUp, (), (override)); // working =) }; int main(int, const char* []) { return 0; }
想法来自this blog post
这是如何做到的,Windows 方式。您需要在此处 Windows cmake
安装 https://cmake.org/download/。因为 Cygwin 中捆绑的 cmake
NOT 兼容 Visual Studio,您需要 cmake.exe
Windows 然后 运行 它来自 DOS 终端。我有 cygwin
用于其他事情,但是对于所有事情 Visual Studio,需要在 DOS 终端中按照 Window 的方式完成。我正在使用 Visual Studio 2019.
git clone https://github.com/google/googletest.git
然后打开DOS终端,赋予PATH已经可以找到cmake.exe
。转到克隆 googletest
存储库的位置。
cd googletest
mkdir c:\opt
mkdir build
cd build
cmake -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX=c:\opt ..
它将生成通常的googletest-distribution.sln
Visual Studio 解决方案文件。现在是使用鼠标的时候了。 Double-click 在此解决方案文件上,它将启动 Visual Studio IDE。构建 ALL_BUILD 和 INSTALL。 ALL_BUILD
将生成 *.lib
个文件,INSTALL
会将这些文件复制到 c:\opt
位置。此后,gtest/gmock 库和 headers 应位于 C:\opt\
文件夹中。