1.gtest测试C++中的函数
文件samp1.h
//samp1.h
#ifndef SAMP1_H
#define SAMP1_H
int add(int a, int b);
int multi(int a, int b);
int dev(int a, int b);
int fac(int n);
#endif
文件samp1.cpp
// samp1.cpp
#include "samp1.h"
int add(int a, int b)
{
return a + b;
}
int multi(int a, int b)
{
return a * b;
}
int dev(int a, int b)
{
if (b == 0)
{
return 0;
}
int result = a / b;
return result;
}
// Returns n! (the factorial of n)
int fac(int n)
{
int result = 1;
for (int i=1; i<=n; i++)
{
result *= i;
}
return result;
}
单元测试用例:文件samp1_test.cpp
//samp1_test.cpp#include#include "samp1.h"
#include "gtest/gtest.h"
namespace
{
TEST(add, Normal)
{
EXPECT_EQ(add(-1,5), 4);
EXPECT_EQ(add(3,4), 7);
EXPECT_EQ(add(0,233), 233);
}
TEST(multi, normal)
{
EXPECT_EQ(multi(5,2), 10);
EXPECT_EQ(multi(66,2), 132);
EXPECT_EQ(multi(1,-2), -2);
}
TEST(dev, normal)
{
EXPECT_EQ(dev(5,2), 2);
EXPECT_EQ(dev(66,2), 33);
EXPECT_EQ(dev(1,-2), 0);
EXPECT_EQ(dev(0,12), 0);
}
TEST(dev, zero)
{
EXPECT_EQ(dev(20, 0), 0);
}
}
# 执行命令:g++ samp1.cpp samp1_test.cpp gtest_main.a -lpthread -o test1生成可执行测试文件test1
![](https://img.haomeiwen.com/i7570320/ef971efb886dd690.png)
# 运行./test
![](https://img.haomeiwen.com/i7570320/f3dd8df6a10377fe.png)
2.gtest测试C++中的类
文件samp2.h
//samp2.h
#ifndef SAMP2_H
#define SAMP2_H
class Box
{
public:
double length;
double breadth;
double height;
public:
double volumn(double len, double bre, double hei);
};
#endif
文件samp2.cpp
![](https://img.haomeiwen.com/i7570320/da2b4d4c70983b6c.png)
![](https://img.haomeiwen.com/i7570320/d106d6e443101487.png)
文件samp2_test.cpp
![](https://img.haomeiwen.com/i7570320/a46f7408ef2f67fe.png)
编译并链接gtest_main.a并执行测试用例文件
![](https://img.haomeiwen.com/i7570320/62641cdb21c7b295.png)
网友评论