真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++測(cè)試框架Gtest學(xué)習(xí)——qt版本-創(chuàng)新互聯(lián)

目錄標(biāo)題
    • 一、參考文檔
    • 二、獲取Gtest
    • 三、使用
    • (一)qt項(xiàng)目導(dǎo)入Gtest
    • (二)修改pro文件
    • (三)一個(gè)簡(jiǎn)單的例子
    • (四)EXPECT(期望)和ASSERT(斷言)介紹
    • (五)EXPECT(ASSERT)分類
    • (六)TEST(測(cè)試分類)
        • 1、TEST
        • 2、TEST_F
        • 3、TEST_P

在都江堰等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都營(yíng)銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,都江堰網(wǎng)站建設(shè)費(fèi)用合理。一、參考文檔

官方文檔

介紹的比較詳細(xì)的博客

二、獲取Gtest

參考

三、使用 (一)qt項(xiàng)目導(dǎo)入Gtest

在項(xiàng)目中創(chuàng)建下面兩個(gè)文件夾:

  • include
  • lib
    創(chuàng)建后將gtest的依賴放入里面。依賴獲取可以參考獲取Gtest

或者在這里獲取跟我一樣的依賴
在這里插入圖片描述

(二)修改pro文件
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

# 項(xiàng)目根目錄
CPP_ROOT     = $${PWD}

# include 所在目錄
INC_PATH     = $${CPP_ROOT}/include
# lib所在目錄
LIB_PATH     = $${CPP_ROOT}/lib


# 導(dǎo)入依賴,注意-L 和 -l 是有含義的。詳細(xì):https://blog.csdn.net/weixin_42156552/article/details/121871417
INCLUDEPATH += $$INC_PATH/gtest
LIBS        += -L$$LIB_PATH/-lgtest

SOURCES += main.cpp
(三)一個(gè)簡(jiǎn)單的例子
#include#includeusing namespace std;

//一個(gè)測(cè)試,里面的參數(shù)表示這個(gè)測(cè)試屬于那個(gè)分組的。如果不會(huì)(簡(jiǎn)單的使用一下),名字可以隨便寫。
TEST(a1, b2)
{int a = 2;
    int b = 1;
    //判斷a是不是等于b ,如果不等于會(huì)輸出 "a!=b" 。EXPECT_EQ 是有特定含義的,用來(lái)判斷是否相等
    EXPECT_EQ(a, b)<< "a!=b" ;

}

int main(int argc, char* argv[])
{//固定代碼  啟動(dòng)gtest
    testing::InitGoogleTest(&argc, argv);
    //運(yùn)行所有測(cè)試(符合條件的)用例
    return  RUN_ALL_TESTS();
}
(四)EXPECT(期望)和ASSERT(斷言)介紹

上面的例子中的EXPECT_EQ(a,b) 可以理解為期望a和b相等。

EXPECT 和 ASSERT 可以看作是測(cè)試類型的兩大分類。EXPECT 類型的測(cè)試如果條件不滿足,會(huì)繼續(xù)執(zhí)行接下來(lái)的測(cè)試。ASSERT 如果遇到一個(gè)不滿足的,就會(huì)停止整個(gè)測(cè)試 ,注意:ASSERT 是停止一個(gè){}中的所以測(cè)試。,不會(huì)繼續(xù)運(yùn)行其他測(cè)試。

  • 例子
#include#includeusing namespace std;

//一個(gè)測(cè)試,里面的參數(shù)表示這個(gè)測(cè)試屬于那個(gè)分組的。如果不會(huì)(簡(jiǎn)單的使用一下),名字可以隨便寫。
TEST(a1, b1)
{int a = 2;
    int b = 1;
    EXPECT_EQ(2, 1)<< "2!=1" ;

    EXPECT_EQ(3, 1)<< "3!=1" ;

    //判斷a是不是等于b ,如果不等于會(huì)輸出 "a!=b" EXPECT_EQ 是有特定含義的。用來(lái)判斷是否相等
    
    //遇到斷言不滿足,停止運(yùn)行
    ASSERT_EQ(a, b)<< "a!=b" ;

    EXPECT_EQ(4, 1)<< "4!=1" ;

    //ASSERT_EQ(a, b)<< "a!=b" ;
}

//如果b1測(cè)試中的斷言為flase,不會(huì)影響b2測(cè)試的進(jìn)行,只會(huì)影響b1后面的測(cè)試。
TEST(a1, b2)
{EXPECT_EQ(2, 1)<< "2!=1" ;

    EXPECT_EQ(3, 1)<< "3!=1" ;
}

int main(int argc, char* argv[])
{//固定代碼  啟動(dòng)gtest
    testing::InitGoogleTest(&argc, argv);
    //運(yùn)行所有測(cè)試(符合條件的)用例
    return  RUN_ALL_TESTS();
}

ASSERT_EQ(a, b)<< “a!=b” ; 在 EXPECT_EQ(4, 1)<< “4!=1” ; 之前測(cè)試,結(jié)果為:

在這里插入圖片描述
ASSERT_EQ(a, b)<< “a!=b” 在之后

在這里插入圖片描述

(五)EXPECT(ASSERT)分類

如下:
在這里插入圖片描述
更多查看官網(wǎng),跳轉(zhuǎn)

(六)TEST(測(cè)試分類)

參考官方文檔

1、TEST
TEST(TestSuiteName, TestName) 
{}

在測(cè)試套件 TestSuiteName 中定義一個(gè)名為 TestName 的單個(gè)測(cè)試,該測(cè)試由給定的語(yǔ)句組成。
參數(shù) TestSuiteName 和 TestName 都必須是有效的C++標(biāo)識(shí)符,并且不得包含下劃線 ()。不同測(cè)試套件中的測(cè)試可以具有相同的單個(gè)名稱。
測(cè)試主體中的語(yǔ)句可以是任何受測(cè)代碼。測(cè)試機(jī)構(gòu)中使用的斷言決定了測(cè)試的結(jié)果。

第一個(gè)參數(shù) TestSuiteName,為測(cè)試組的名字,一般將相同類型的測(cè)試分成一組,名字可以隨意取,但是命名要符合規(guī)范。
第二個(gè)參數(shù) TestName,為該測(cè)試的名字,是唯一的,不能重名,名字可以隨意取,但是命名要符合規(guī)范。

#include#includeusing namespace std;

//一個(gè)測(cè)試,里面的參數(shù)表示這個(gè)測(cè)試屬于那個(gè)分組的。如果不會(huì)(簡(jiǎn)單的使用一下),名字可以隨便寫。
//a1組中的,b1測(cè)試
TEST(a1, b1)
{int a = 2;
    int b = 1;
    EXPECT_EQ(2, 1)<< "2!=1" ;

    EXPECT_EQ(3, 1)<< "3!=1" ;

    //判斷a是不是等于b ,如果不等于會(huì)輸出 "a!=b" EXPECT_EQ 是有特定含義的。用來(lái)判斷是否相等

    //遇到斷言不滿足,停止運(yùn)行
    //ASSERT_EQ(a, b)<< "a!=b" ;

    EXPECT_EQ(4, 1)<< "4!=1" ;

    ASSERT_EQ(a, b)<< "a!=b" ;
}

//a1組中的,b2測(cè)試
TEST(a1, b2)
{int a = 2;
    int b = 1;
    EXPECT_EQ(2, 1)<< "2!=1" ;

    EXPECT_EQ(3, 1)<< "3!=1" ;

    //判斷a是不是等于b ,如果不等于會(huì)輸出 "a!=b" EXPECT_EQ 是有特定含義的。用來(lái)判斷是否相等

    //遇到斷言不滿足,停止運(yùn)行
    //ASSERT_EQ(a, b)<< "a!=b" ;

    EXPECT_EQ(4, 1)<< "4!=1" ;

    ASSERT_EQ(a, b)<< "a!=b" ;
}

int main(int argc, char* argv[])
{//固定代碼  啟動(dòng)gtest
    testing::InitGoogleTest(&argc, argv);
    //運(yùn)行所有測(cè)試(符合條件的)用例
    return  RUN_ALL_TESTS();
}
2、TEST_F

這種方式需要結(jié)合類使用,繼承Gtest提供的接口類。

TEST_F(TestFixtureName, TestName) {}

定義一個(gè)名為 TestName 的單個(gè)測(cè)試,該測(cè)試使用測(cè)試夾具類 TestFixtureName。測(cè)試套件名稱為 TestFixtureName。

參數(shù) TestFixtureName(一個(gè)繼承了::testing::Test 的類) 和 TestName 都必須是有效的標(biāo)識(shí)符C++并且不得包含下劃線,不能重名。

  • mian
#include#include#include "testfixture.h"
using namespace std;


TEST_F(TestFixture, test1)
{EXPECT_EQ(id, 1);

    EXPECT_EQ(name, "xiaoming");
}

//將測(cè)試用例存放到 QueueTest里面。能重復(fù)調(diào)用測(cè)試用例
TEST_F(TestFixture, test2)
{EXPECT_EQ(age, 20);
}

int main(int argc, char* argv[])
{//固定代碼  啟動(dòng)gtest
    testing::InitGoogleTest(&argc, argv);
    //運(yùn)行所有測(cè)試(符合條件的)用例
    return  RUN_ALL_TESTS();
}
  • TestFixture.h
#include "gtest.h"


using namespace std;


class TestFixture : public ::testing::Test
{// Test interface
protected:
    //測(cè)試開始前框架會(huì)調(diào)用這個(gè)方法,(初始化測(cè)試數(shù)據(jù))
    void SetUp() override;
    //測(cè)試完后運(yùn)行這個(gè)方法
    void TearDown() override;

public:
    TestFixture();
    int id = 1;
    string name = "lihua";
    int age = 18;
};
  • TestFixture.cpp
#include "testfixture.h"
#includeusing namespace std;

TestFixture::TestFixture()
{}

void TestFixture::SetUp()
{cout<< "------------before testing!!!------------"<< endl;
    //初始化測(cè)試數(shù)據(jù)
    id = 2;
    name = "xiaoming";
    age  = 12;
}

void TestFixture::TearDown()
{cout<< "-----------after the test!!!--------------"<< endl;
}

在這里插入圖片描述
運(yùn)行過(guò)程:

  1. 谷歌測(cè)試構(gòu)造一個(gè)對(duì)象(我們稱之為)。TestFixture t1(框架創(chuàng)建的對(duì)象)
  2. t1.SetUp()初始化。(在測(cè)試前調(diào)用初始化方法)
  3. 運(yùn)行測(cè)試名為: test1的測(cè)試。
  4. 測(cè)試完成后調(diào)用 t1.TearDown() 進(jìn)行(處理業(yè)務(wù))清理數(shù)據(jù)。
  5. t1對(duì)象銷毀。
  6. 在另一個(gè)對(duì)象上重復(fù)上述步驟,這次運(yùn)行測(cè)試。test2
3、TEST_P

沒(méi)搞懂。

TEST_P

其他講解

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前標(biāo)題:C++測(cè)試框架Gtest學(xué)習(xí)——qt版本-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://weahome.cn/article/joidj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部