我是 C++ 开发的新手。我对链接器和高级概念了解不多,但我是 C#、Java 和一般测试方面的专家。
我的控制台应用程序有 2 个文件:
程序.h
int Add(int x, int b);
程序.cpp
#include <iostream>
int Add(int x, int b)
{
return x * b;
}
int main()
{
int x = 4;
int y = 5;
std::cout << x << " add " << y << " is " << Add(x, y) << std::endl;
}
这个程序运行良好,但我想用 GoogleTest 测试
Add()
。
Visual Studio 附带 GoogleTest 项目类型,因此我创建了一个,但无法在此测试项目中#include“Program.h”。
代码块是
#include "Program.h"
。
在 GoogleTest 中测试控制台程序的简单方法是什么?
我相信我可以创建指向 ConsoleApplication 文件夹中的文件的 NTFS 硬/软链接,但该技巧可能不适用于 Git,或者如果我移动解决方案。
我实际上会稍微重构一下你的代码。由于您的屏幕截图显示了 Visual Studio,我将使用该术语
数学 - 静态库
数学.h
int Add(int x, int b);
数学.cpp
#include "math.h"
int Add(int x, int b)
{
return x * b;
}
math_tests - 可执行
math_tests.cc
#include "math.h"
#include "gtest/gtest.h"
TEST(Math, Equals) {
EXPECT_EQ(Add(2, 3), 5);
}
主要 - 可执行文件
程序.cpp
#include "math.h"
int main()
{
int x = 4;
int y = 5;
std::cout << x << " add " << y << " is " << Add(x, y) << std::endl;
}
这样您就有了三个构建单元,每个单元都有自己的 vcxproj。
math
静态库math
静态库