gtest - Gakgu/Gakgu.github.io GitHub Wiki
gtest๋?
๊ตฌ๊ธ์์ ์ ๊ณตํ๋ C++ ํ ์คํธ ํ๋ ์์ํฌ์ด๋ค.
๊ตฌ์ฑ
- header
#include <gtest/gtest.h>
- library
libgtest.so
libgtest_main.so
์์ฑ
TEST() Macro
TEST(ํ
์คํธ ์ผ์ด์ค, ํ
์คํธ) {
...
}
- ํ ์คํธ ์ผ์ด์ค์ ์ด๋ฆ์ ์ค๋ณต๋ ์ ์๋ค.
- ํ
์คํธ ์ ์ฒด ์ด๋ฆ์
ํ ์คํธ ์ผ์ด์ค.ํ ์คํธ
๋ก ๊ตฌ์ฑ๋๋ค.
TEST_F() Macro
TEST_F(ํ
์คํธ ํฝ์ค์ณ ํด๋์ค, ํ
์คํธ) {
...
}
- Test Fixtures์ ์ฝ์๋ก ์ฌ๋ฌ ํ ์คํธ์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ๋ ์ฌ์ฉํ๋ค.
Test Fixture Class
::testing::Test
ํด๋์ค์์ ์์๋ฐ๋๋ค.- SetUp() ์ฌ์ฉ
- TearDown()๋ฅผ ์ฌ์ฉํด์ผ๋ง ํ๋ ๊ฒฝ์ฐ
- ์์ธ๋ฅผ ์ฒ๋ฆฌํ ๋
- ํ ์คํธ์ ๋ ธ์ถ์ํฌ ๋งด๋ฒ๋ public ๋๋ protected๋ก ์์ฑํ๋ค.
ํธ์ถ
- ๋ฉ์ธํจ์๋ฅผ ์ง์ ์์ฑํ๋ ๋ฐฉ๋ฒ
int main(int argc, char **argv)
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
-
gtest_main ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
libgtest_main.so
๋ฅผ ๋งํฌํ ํ ๋ฉ์ธํจ์ ์์ด ์คํํ๋ฉด ๋๋ค. -
ํน์ ํ ์คํธ ์ผ์ด์ค๋ง ํธ์ถํ๋ ๋ฐฉ๋ฒ
$ [test_bin] --gtest_filter=[ํ
์คํธ์ผ์ด์ค].[ํ
์คํธ]
ํจ์
ASSERT, EXPECT ์ฐจ์ด
- ASSERT - ํ ์คํธ ๋ฐ๋ก ์ค๋จ
- EXPECT - ํ ์คํธ ๊ณ์ ์คํ
๋ฉ์ธ์ง ์ถ๊ฐ
ํ
์คํธ ํจ์ ๋ค์ << "๋ฉ์ธ์ง"
๋ฅผ ๋ถ์ฌ์ ๋ฉ์ธ์ง๋ฅผ ์ถ๊ฐํ๋ค.
// example
EXPECT_EQ(0, func()) << "ํจ์ ์ฑ๊ณต";