GoogleTest入門


Googletest入門

來源:https://github.com/google/googletest/blob/master/googletest/docs/primer.md

P.S. gmock作為gtest的孿生兄弟,其通俗介紹可以看這篇:https://blog.csdn.net/wangjingqi930330/article/details/80525056

簡介:為啥用googletest

用googletest是為了寫更好的測試代碼

googletest是谷歌專門的測試框架團隊開發的,跨平台,支持各種類型的測試。

理念:

  1. 測試應當具備獨立性可重復性
  2. 良好的組織
  3. 可移植可重用
  4. 如果fail則提供盡可能多的信息
  5. 讓用戶專注於測試內容,避免做“家務活”
  6. 用起來快,不同的test之間相互共享着用,稍微改一下就能跑

術語說明

International Software Testing Qualifications Board (ISTQB)用的術語,和googletest里不一樣。

ISTQB/課本 GoogleTest老版本 GoogleTest新版本
Test Suite Test Case TestSuite
Test Case Test Test

基本概念

Assertions

使用ASSERT_XXX()EXPECT_XXX()來執行測試。

ASSERT_EQ()來確保結果一致,不一致就停止。
EXPECT_EQ()來檢查結果一致,不一致的話依然繼續執行,但是給出提示。
ASSERT_EQ()EXPECT_EQ()都可以制作流,因此可以接一個<<"message"來作為提示。

可用宏列表

  • ASSERT_TRUE

  • ASSERT_FALSE

  • ASSERT_EQ

  • ASSERT_NE: 不等於

  • ASSERT_GT: >

  • ASSERT_LE: <=

  • ASSERT_LT: <

  • ASSERT_GE: >=

  • ASSERT_STREQ:字符串相等

  • ASSERT_STRNE:字符串不等

  • ASSERT_STRCASEEQ:不考慮大小寫時相等

  • ASSERT_STRCASENE:不考慮大小寫是不等

  • EXPECT_TRUE

  • EXPECT_FALSE

  • EXPECT_EQ

  • EXPECT_NE: 不等於

  • EXPECT_GT: >

  • EXPECT_LE: <=

  • EXPECT_LT: <

  • EXPECT_GE: >=

  • EXPECT_STREQ:字符串相等

  • EXPECT_STRNE:字符串不等

  • EXPECT_STRCASEEQ:不考慮大小寫時相等

  • EXPECT_STRCASENE:不考慮大小寫是不等

簡單的測試寫法

TEST(TestSuiteName, TestName){
    ...
}

其中TestSuiteNameTestName必須是不含"_"的標志符。

復雜一點,還可以用TEST_F,感覺有點復雜,和TEST的區別可以看看這篇:https://blog.csdn.net/carolzhang8406/article/details/54668462


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM