Google测试测试名称混淆
Google Test test name confusion
我真的很困惑 SquareTest 和 PosZeroNeg 在这个例子中代表什么。我希望它们是传递给函数的字符串,但它们不是?我是 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
是一个有两个参数的宏,宏生成测试用例 SquareTest.PosZeroNeg
。它可能取决于一个实现,但在今天的这个特定示例中,SquareTest
命名为 class 和 PosZeroNeg
命名为(静态)class 方法,两者都是由宏,并且 SquareTest.PosZeroNeg
在使用时映射这些 class 和方法。由于第一个宏参数是class名称,第二个是方法名称,它们不是字符串,而是标识符,不能包含引号。
我真的很困惑 SquareTest 和 PosZeroNeg 在这个例子中代表什么。我希望它们是传递给函数的字符串,但它们不是?我是 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
是一个有两个参数的宏,宏生成测试用例 SquareTest.PosZeroNeg
。它可能取决于一个实现,但在今天的这个特定示例中,SquareTest
命名为 class 和 PosZeroNeg
命名为(静态)class 方法,两者都是由宏,并且 SquareTest.PosZeroNeg
在使用时映射这些 class 和方法。由于第一个宏参数是class名称,第二个是方法名称,它们不是字符串,而是标识符,不能包含引号。