為什么 TEST_F 可以在class不使用任何作用域的情況下訪問 a 中的成員變數?例如,
class ABC : public ::testing::Test
{
protected:
int a;
int b;
void SetUp()
{
a = 1;
b = 1;
}
virtual void TearDown()
{
}
};
TEST_F(ABC, Test123)
{
ASSERT_TRUE(a == b);
}
為什么它可以直接訪問aandb而不是使用ABC::aor ABC::b?夾具是否創建變數class ABC?如果是這樣,它應該ASSERT_TRUE(abc.a == abc.b);代替ASSERT_TRUE(a == b);嗎?
uj5u.com熱心網友回復:
TEST_F 是一個宏,它定義了一個從第一個引數(在本例中為“ABC”)公開繼承的新類。因此它可以訪問測驗夾具類的所有公共和受保護成員。
您可以在頭檔案中檢查此宏的源代碼,以更好地了解它在做什么。
TEST_F 宏,如果您按照宏路徑引導您到... GTEST_TEST_ 宏
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/479498.html
上一篇:如何在Remix中測驗Solidity-By-ExampleMapping智能合約?
下一篇:**(Phoenix.Router.NoRouteError)找不到GET/fake(MyApp.Router)的路由
