google-test gtest示例

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

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

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值