簡體   English   中英

Google Test 測試名稱混淆

[英]Google Test test name confusion

我真的很困惑 SquareTest 和 PosZeroNeg 在這個例子中代表什么。 我希望它們是被傳遞到 function 的字符串,但不是嗎? 我是 c++ 的新手,所以我什至不確定要查找什么,因為我從未見過這樣的事情。 CLion 將這些“變量字符串”顯示為有效的 c++。 有人可以解釋這是什么嗎?

#include "gtest/gtest.h"
#include "Particle.h"

TEST (SquareTest /*test suite name*/, PosZeroNeg /*test name*/) {
    EXPECT_EQ (9.0, (3.0*2.0)); // fail, test continues
    ASSERT_EQ (0.0, (0.0));     // success
    ASSERT_EQ (9, (3)*(-3.0));  // fail, test interrupts
    ASSERT_EQ (-9, (-3)*(-3.0));// not executed due to the previous assert
}

TEST是一個帶有兩個 arguments 的宏,該宏生成測試用例SquareTest.PosZeroNeg 它可能取決於實現,但在這個特定的示例中, SquareTest命名為 class 和PosZeroNeg命名(靜態)class 方法,兩者都是由宏生成的,並且SquareTest.PosZeroNeg在使用時映射這些 ZA2F2ED4F8EBC2ABC1DDC2 和方法。 由於第一個宏參數是 class 名稱,第二個是方法名稱,它們不是字符串,而是標識符,不能包含引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM