2021. 11. 9. 11:32ใSpring
1. Junit
Junit์ ๋จ์ํ ์คํธ ํ๋ ์์ํฌ์ด๋ค.
Junit์ @Test ๋ฉ์๋๊ฐ ๊ฐ๊ฐ ํธ์ถ๋ ๋ ๋ง๋ค ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ์ฌ ๋ ๋ฆฝ์ ์ธ ํ ์คํธ๊ฐ ์ด๋ฃจ์ด์ง๋๋ก ํ๋ค.
โ ๋จ์ํ ์คํธ๋?
๋ชจ๋ ํจ์์ ๋ฉ์๋์ ๋ํ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ ์ ์ฐจ๋ฅผ ์๋ฏธํ๋ค.
2. Junit ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
https://mvnrepository.com/artifact/junit/junit
์ฌ๊ธฐ์ ๋๋ 4.12 ๋ฒ์ ์ pom.xml ์ ์ถ๊ฐํด์คฌ๋ค.
๊ทผ๋ฐ ์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ pom.xml์ ์ ๋ณด๋ฉด
์ด๋ฏธ junit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์๋ค. ์ด๊ฑธ ํ์ธ๋ ์ํ๊ณ ๊ทธ๋ฅ ์ถ๊ฐ๋ฅผ ํด์คฌ๋๋
SpringJUnit4ClassRunner requires JUnit 4.12 or higher
์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํด์ ํ์ฐธ ํค๋งค๋ค๊ฐ ๊ฒจ์ฐ ๋ฐ๊ฒฌํ๋ค ใ
์ด๋ฐ ์ค์ ์ํ์๊ธธ~.~
์๋ฌดํผ pom.xml์ ์ถ๊ฐํด์ฃผ๊ณ maven update๋ฅผ ํด์ฃผ๋ฉด ๋๋ค.
3. Junit annotation
1๏ธโฃ @Test
@Test๊ฐ ์ ์ธ๋ ๋ฉ์๋๋ ํ ์คํธ๋ฅผ ์ํํ๋ ๋ฉ์๋๊ฐ ๋๋ค.
๊ฐ๊ฐ์ ํ ์คํธ๊ฐ ์๋ก ์ํฅ์ ์ฃผ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋๋ค.
2๏ธโฃ @Ignore
@Ignore๊ฐ ์ ์ธ๋ ๋ฉ์๋๋ ํ ์คํธ๋ฅผ ์คํํ์ง ์๊ณ ๋์ด๊ฐ๋ค.
3๏ธโฃ @Before
@Before๊ฐ ์ ์ธ๋ ๋ฉ์๋๋ @Test๋ฉ์๋๊ฐ ์คํ๋๊ธฐ์ ์ ๋ฐ๋์ ์คํ๋์ด์ผ ํ๋ค.
@Test ๋ฉ์๋์์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ ์ฝ๋๋ฅผ @Before ๋ฉ์๋์ ์ ์ธํด์ ์ฌ์ฉํ๋ค.
4๏ธโฃ @After
@After ๋ฉ์๋๋ @Test ๋ฉ์๋๊ฐ ์คํ๋ ํ์ ์คํ๋๋ค.
5๏ธโฃ @BeforeClass
@BeforeClass๋ @Test ๋ฉ์๋๋ณด๋ค ๋จผ์ ํ๋ฒ๋ง ์ํ๋์ด์ผํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
6๏ธโฃ @AfterClass
@AfterClass๋ @Test๋ฉ์๋๋ณด๋ค ๋์ค์ ํ๋ฒ๋ง ์ํ๋์ด์ผํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
4. Junit Assert method
1๏ธโฃ assertEquals(a,b);
๊ฐ์ฒด A์ B๊ฐ ์ผ์นํจ์ ํ์ธํ๋ค.
2๏ธโฃ assertArrayEquals(a,b);
๋ฐฐ์ด A์ B๊ฐ ์ผ์นํจ์ ํ์ธํ๋ค.
3๏ธโฃ assertSame(a,b);
๊ฐ์ฒด A์ B๊ฐ ๊ฐ์ ๊ฐ์ฒด์์ ํ์ธํ๋ค.
โ AssertEquals vs AssertSame
AssertEquals ๋ฉ์๋๋ ๋ ๊ฐ์ฒด์ ๊ฐ์ด ๊ฐ์์ง๋ฅผ ํ์ธํ๋ค.
AssertSame ๋ฉ์๋๋ ๋ ๊ฐ์ฒด์ ๋ ํผ๋ฐ์ค๊ฐ ๊ฐ์์ง๋ฅผ ํ์ธํ๋ค.
4๏ธโฃ assertTrue(a);
์กฐ๊ฑด A๊ฐ ์ฐธ์ธ๊ฐ๋ฅผ ํ์ธํ๋ค.
5๏ธโฃ assertNotNull(a);
๊ฐ์ฒด A๊ฐ null์ด ์๋์ ํ์ธํ๋ค.
5. Junit Test ํด๋์ค ์์ฑ
https://hyejin.tistory.com/242?category=1022293
์ฌ๊ธฐ์ ๋ง๋ค์๋ DI ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฉํด์ Test ํด๋์ค๋ฅผ ์์ฑํ ์์ ์ด๋ค.
junit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ถ๊ฐํ๋ค๋ฉด
Test Class๋ฅผ ์์ฑํ๋ค.
์ฐ์ ApplicationContext ๊ฐ์ฒด๋ฅผ ๋ฐ๋์ ์์ฑํด์ผํ๋ค.
๊ทธ๋ฆฌ๊ณ @Before ๋ฅผ ํตํด ํ ์คํธ ์ ์ ์ํํ๋๋ก ์ฝ๋๋ฅผ ์์ฑํด์คฌ๋ค.
๊ทธ๋ฆฌ๊ณ junit test๋ก ์คํ์ ํ๋ฉด
๊ฒฐ๊ณผ๊ฐ ์ด๋ ๊ฒ ๋์จ๋ค.
์ด๋ Test๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ํ๋๋ฉด ์ด๋ก์์ผ๋ก ๋จ๊ณ ์คํจํ๋ฉด ๋นจ๊ฐ์?์ผ๋ก ๋ฌ๋ค