gtest 是一种类似与CppUnit的,用于单元测试的库,由google公司开发并开放,以下为一个使用案例:
/*
must link gtest and pthread
g++ -o t28-gtest test28-gtest.cpp test28-CBasicMath.cpp -lgtest -pthread
*/
#include <iostream>
#include <string>
#include <sstream>
#include <list>
#include <gtest/gtest.h>
#include "test28-CBasicMath.hpp"
using namespace std;
class CBasicMathTest : public ::testing::Test {
//protected:
public:
void SetUp() override {
m_testObj = new CBasicMath();
}
void TearDown() override {
delete m_testObj;
}
CBasicMath *m_testObj;
};
TEST(Foo, Int) {
EXPECT_EQ(123, 123) << "Foo Bar test";
}
TEST_F(CBasicMathTest, Addition) {
EXPECT_EQ(3+4, m_testObj->Addition(3,4) );
EXPECT_EQ(0+0, m_testObj->Addition(0,0) ) << "Normal test";
EXPECT_EQ(-1, m_testObj->Addition(-1,0) ) << "Negative value test";
//ASSERT_EQ(1+0, m_testObj->Addition(-1,0) ) << "Assert test";
}
TEST(Foo, Double) {
EXPECT_EQ(12.3, 12.3) << "Foo Bar test";
}
TEST_F(CBasicMathTest, Multiply) {
EXPECT_EQ(3*4, m_testObj->Multiply(3,4) );
EXPECT_EQ(0, m_testObj->Multiply(0,0) ) << "Normal test";
EXPECT_EQ(0, m_testObj->Multiply(-1,0) ) << "Negative value test";
}
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

本文介绍了一个使用gtest进行单元测试的示例,详细展示了如何通过gtest库来测试CBasicMath类的加法和乘法功能,包括正常情况、负数情况等不同场景的测试。
9001

被折叠的 条评论
为什么被折叠?



