рдЧреВрдЧрд▓ рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ (gtest)

рдЬрдм рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реА рдирд╣реАрдВ рдерд╛, рдореИрдВ рдЙрдкрдпреЛрдЧ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЛрдЪ рдирд╣реАрдВ рдХрд┐рдпрд╛ :: рдкрд░реАрдХреНрд╖рдгред рдХреНрд╖рд┐рддрд┐рдЬ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА Google рдкрд░реАрдХреНрд╖рд╛ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдмрдиреНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд :: рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд▓рдлреВрд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЕрд░реНрдЬрд┐рдд рдЬреНрдЮрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рдм рдЬреЛ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ



рдЧреВрдЧрд▓ рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдореЗрдВ рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рджрд╛рд╡рд╛ (рдЬрд╝реЛрд░) рдХреА рдзрд╛рд░рдгрд╛ рд╣реИред рджрддреНрддрдХ рдЧреНрд░рд╣рдг рд╕рдлрд▓рддрд╛ рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╕рдлрд▓рддрд╛), рдЧреИрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдлрд▓рддрд╛ (nonfatal рд╡рд┐рдлрд▓рддрд╛) рдФрд░ рдЧрдВрднреАрд░ рд╡рд┐рдлрд▓рддрд╛ (рдШрд╛рддрдХ рд╡рд┐рдлрд▓рддрд╛) рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдЧрдВрднреАрд░ рд╡рд┐рдлрд▓рддрд╛, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЕрдВрдд рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЕрдиреНрдпрдерд╛ рдкрд░реАрдХреНрд╖рдг рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рд╣реА рдмрдпрд╛рди рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ (рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдорд╛рдорд▓рд╛) рдореЗрдВ рдмрд╛рдВрдЯрд╛ рдЬрд╛ рд╕рдХрддрд╛ред рдпрджрд┐ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреА рдореБрд╢реНрдХрд┐рд▓ рдХрд╕реНрдЯрдо рд╕рдореВрд╣ рд╣реИ, рдпрд╣ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рдг (рд╕реНрдерд┐рд░рддрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдВрдпреБрдХреНрдд рд╕реЗрдЯ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо (рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо) рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд╛рд╡реЗ (рджрд╛рд╡реЗ)


рдЕрдиреБрдореЛрджрди, рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдЭреВрда рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреИрджрд╛ ASSERT_, nonfatal рдХреЗ рд╕рд╛рде рд╢реБрд░реВ - EXPECT_ред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддреБрд░рдВрдд рд╕рдорд╛рд░реЛрд╣ рд╣реИ, рдЬреЛ рдПрдХ рдЗрдирдХрд╛рд░ рдмрдпрд╛рди рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрд▓рд╛рдХрд╛рдд рдХреА рд╡рд╛рдкрд╕реА рд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдмрдпрд╛рди рдореЗрдВ рд╕реНрдореГрддрд┐ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдкрд░рд┐рд╖реНрдХрд░рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рд╕рдлрд╛рдИ рдХреЛрдб рд╣реИ, рддреЛ рдЖрдк рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрдпрд╛рдиреЛрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (nonfatal ASSERT_ рд╕рд╛рде рдирд╣реАрдВ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ EXPECT_ рдХреЗ рд╕рд╛рде):

рд╕рд░рд▓ рддрд░реНрдХ




рддреБрд▓рдирд╛




рддрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛




рдЕрдкрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг




рдЪреЗрдХ рд╡рд┐рдзреЗрдп




рдЪрд▓ рдмрд┐рдиреНрджреБ рдХреА рддреБрд▓рдирд╛




рдХреЙрд▓ рд╡рд┐рдлрд▓рддрд╛ рдпрд╛ рд╕рдлрд▓рддрд╛




рдЖрдк рдЕрдкрдиреА рдЦреБрдж рдХреА рд╕рдорд╛рд░реЛрд╣ рд░рд┐рдЯрд░реНрди рдХрд┐ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ AssertionResult

::testing::AssertionResult IsTrue(bool foo) { if (foo) return ::testing::AssertionSuccess(); else return ::testing::AssertionFailure() << foo << " is not true"; } TEST(MyFunCase, TestIsTrue) { EXPECT_TRUE(IsTrue(false)); } 


рдЖрдк StaticAssertTypeEq <T1, T2> () :: рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ::ред рд╕рдВрдХрд▓рди T1 рдФрд░ рдЯреА 2 рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдпрджрд┐ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдмрдпрд╛рди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдмрдпрд╛рди рдХреА рдЕрд╕рддреНрдпрддрд╛ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдЯрд┐рдкреНрдкрдгреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 ASSERT_EQ(1, 0) << "1 is not equal 0"; 


рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд░реНрдг рд╕реЗрдЯ (wchar_t) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рджрд╛рд╡реЛрдВ рдореЗрдВ рддрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рддред рдЗрд╕ рдЕрдВрдХ рдореЗрдВ UTF-8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЯреЗрд╕реНрдЯ (рдкрд░реАрдХреНрд╖рдг)



рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореИрдХреНрд░реЛ рдЯреЗрд╕реНрдЯред рдпрд╣ рд╢реВрдиреНрдп рд╕рдорд╛рд░реЛрд╣ рд╣реИ, рдЬреЛ рдЖрдк рдЕрдиреБрдореЛрджрди рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ, рдЖрд▓реЛрдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓ рд╕рдорд╛рд░реЛрд╣ рд╕реЗ рдПрдХ рддрддреНрдХрд╛рд▓ рд╡рд╛рдкрд╕реА рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
 TEST(test_case_name, test_name) { ASSERT_EQ(1, 0) << "1 is not equal 0"; } 


рдкрд░реАрдХреНрд╖рдг 2 рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВ - рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХрд╛ рдирд╛рдо рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдирд╛рдоред рдПрдХ рд╣реА рдЯреЗрд╕реНрдЯ рд╕реНрд╡реАрдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд╛рдо DISABLED_ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдкрд░реАрдХреНрд╖рдг (рдЯреЗрд╕реНрдЯ рд╕реНрд╡реАрдЯ) рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдирд╣реАрдВред

рдЖрдк рди рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рднреА рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреБрдореЛрджрди, рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░ рд╢реВрдиреНрдп рд╕рдорд╛рд░реЛрд╣ рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ - рд╕рд┐рд░реНрдл рдПрдХ рд╕реАрдорд╛ рд╣реИред

рдлрд┐рдХреНрд╕рд┐рдВрдЧ (рдЬреБрдбрд╝рдирд╛рд░)



рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ, рдореБрд╢реНрдХрд┐рд▓ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдПрдХ рд╕рдордп рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧред

рдХрдорд┐рдЯ рдПрдХ рдРрд╕реА рд╢реНрд░реЗрдгреА рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ :: рдкрд░реАрдХреНрд╖рдг :: рдкрд░реАрдХреНрд╖рдг, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдпрд╛ рд╕реЗрдЯрдЕрдк () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрд╕рд╛рдзрди рдЯрд┐рдпрд░рдбрд╛рдЙрди (рдлрд╝рдВрдХреНрд╢рди) рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ, рдЬреЛ рдирд┐рд░реНрдзрд╛рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛, рдореИрдХреНрд░реЛрдЬрд╝ TEST_F рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕реЗрдЯ рдирд╛рдо рдФрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рдирд╛рдо рдирд╣реАрдВ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рддрд╛рд▓рд╛, рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЗрдЯрдЕрдк () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░, рдкрд░реАрдХреНрд╖рдг, рдорджрдж рдЯрд┐рдпрд░рдбрд╛рдЙрди () рдФрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдХреА рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдореБрдХреНрдд рдХрд░ рджрд┐рдпрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рдг "рджреВрд╖рд┐рдд рдирд╣реАрдВ" рдХреА рдЕрдкрдиреА рдкреНрд░рддрд┐ рд╣реЛрдЧреАред

 #include <gtest/gtest.h> #include <iostream> class Foo { public: Foo() : i(0) { std::cout << "CONSTRUCTED" << std::endl; } ~Foo() { std::cout << "DESTRUCTED" << std::endl; } int i; }; class TestFoo : public ::testing::Test { protected: void SetUp() { foo = new Foo; foo->i = 5; } void TearDown() { delete foo; } Foo *foo; }; TEST_F(TestFoo, test1) { ASSERT_EQ(foo->i, 5); foo->i = 10; } TEST_F(TestFoo, test2) { ASSERT_EQ(foo->i, 5); } int main(int argc, char *argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } argv); #include <gtest/gtest.h> #include <iostream> class Foo { public: Foo() : i(0) { std::cout << "CONSTRUCTED" << std::endl; } ~Foo() { std::cout << "DESTRUCTED" << std::endl; } int i; }; class TestFoo : public ::testing::Test { protected: void SetUp() { foo = new Foo; foo->i = 5; } void TearDown() { delete foo; } Foo *foo; }; TEST_F(TestFoo, test1) { ASSERT_EQ(foo->i, 5); foo->i = 10; } TEST_F(TestFoo, test2) { ASSERT_EQ(foo->i, 5); } int main(int argc, char *argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } 


рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдПрдХ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рдСрдкрд░реЗрд╢рди рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдирдП рд╕рд┐рд░реЗ рд╕реЗ рддрдп рдХрд░рдиреЗ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗрдЯрдЕрдк () рдФрд░ рдЯрд┐рдпрд░рдбрд╛рдЙрди () рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рддрд╛рд▓рд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рдХреНрд╕реЗрд╢рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрдЧ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕реНрдерд┐рд░ рд╕рджрд╕реНрдп рд╣реИред рд╕реНрдЯреЗрдЯрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ SetUpTestCase () рдФрд░ TearDownTestCase () рд╡рд╕реНрддреБ рдФрд░ рд░рд┐рд╣рд╛рдИ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рддрджрдиреБрд╕рд╛рд░ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд╣рд▓реЗ рдЯреЗрд╕реНрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдПрдХ рд╕реЗрдЯ SetUpTestCase () рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛, рдФрд░ рдкрд┐рдЫрд▓реЗ TearDownTestCase рдХреЗ рдмрд╛рдж ()ред

рдпрджрд┐ рдкреВрд░реЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк () рдФрд░ рдЯрд┐рдпрд░рдбрд╛рдЙрди () рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЗ рд▓рд┐рдП, рддреЛ рдЖрдкрдХреЛ :: рдкрд░реАрдХреНрд╖рдг :: рдкрд░реНрдпрд╛рд╡рд░рдг, рдУрд╡рд░рд░рд╛рдЗрдб рд╕реЗрдЯрдЕрдк () рдФрд░ рдЯрд┐рдпрд░рдбрд╛рдЙрди () рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред AddGlobalTestEnvironmentред

рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИ



рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкрд░реАрдХреНрд╖рдг рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдиреНрд╣реЗрдВ RUN_ALL_TESTS () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рд░рд┐рдЯрд░реНрди рдХреЗ рд▓рд┐рдП рдХрд╛рдо RUN_ALL_TESTS рдХрд╛ рдкрд░рд┐рдгрд╛рдо () рдлрд╝рдВрдХреНрд╢рди рджреЗрддрд╛ рд╣реИред

рдЭрдВрдбреЗ



RUN_ALL_TESTS рд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ () рдлрд╝рдВрдХреНрд╢рди InitGoogleTest (argc, argv) рдмрдирд╛рддрд╛ рд╣реИ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рд┐рд░реНрдл рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рд╕рдордЧреНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓реЗрддрд╛ рд╣реИред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, -h, --help рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЛ рд╕рднреА рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЧрд╛ред рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ (рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ)ред

рдпрджрд┐ рдЖрдк рд▓рдЧрд╛рддрд╛рд░ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдкрдпреБрдХреНрдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реИрд░рд┐рдПрдмрд▓ GTEST_ALSO_RUN_DISABLED_TESTS рдХреЛ рдПрдХ рдЧреИрд░-рд╢реВрдиреНрдп рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ --gtest_also_run_disabled_tests рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп



рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ Google рдЯреЗрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ред рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдкреНрд░рд▓реЗрдЦрди ред рд╡рд╣рд╛рдБ рд╕реЗ, рдЖрдк рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ ASSERT_DEATH рдЧрд┐рд░рд╛рд╡рдЯ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, parameterized рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрддреНрд░рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдкрд░, рд╡рд░реНрдЧ рдХреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдирд┐рдЬреА рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд╡рд┐рдиреНрдпрд╕реНрдд, рдФрд░ рдЕрдзрд┐рдХред

рдпреБрдкреАрдбреА: рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛ habrapolzovatelya Nikel рдЭрдВрдбреЗ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд inofrmatsiya рдЧрдпреАред
UPD 2: рд╣реИрдмреЗ (рдореВрд▓ рдЯреИрдЧ рд╕реНрд░реЛрдд) рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдПрдХ рдЕрдВрдХрди рдХрд╛ рд╕реБрдзрд╛рд░ред

Source: https://habr.com/ru/post/In119090/


All Articles