Spring DI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Junit ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ์ž‘์„ฑํ•˜๊ธฐ

2021. 11. 9. 11:32ใ†Spring

728x90

1. Junit

Junit์€ ๋‹จ์œ„ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. 

Junit์€ @Test ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ๊ฐ ํ˜ธ์ถœ๋ ๋•Œ ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋…๋ฆฝ์ ์ธ ํ…Œ์ŠคํŠธ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋„๋ก ํ•œ๋‹ค. 

 

โ— ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋ž€?

๋ชจ๋“  ํ•จ์ˆ˜์™€ ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 

 

 

2. Junit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ 

https://mvnrepository.com/artifact/junit/junit

์—ฌ๊ธฐ์„œ ๋‚˜๋Š” 4.12 ๋ฒ„์ „์„ pom.xml ์— ์ถ”๊ฐ€ํ•ด์คฌ๋‹ค. 

4.12๋ฒ„์ „์ด ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์žฅ ๋งŽ์Œ 

๊ทผ๋ฐ ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ 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 

 

[Spring] DI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ

 Spring DI Application ๋งŒ๋“ค๊ธฐ 1๏ธโƒฃ POJO ํด๋ž˜์Šค ์ƒ์„ฑํ•˜๊ธฐ => Printer๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  StringPrinter๊ฐ€ ์ด๋ฅผ ์ฐธ์กฐํ•ด์„œ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  Hello ์ž๋ฐ” ํด๋ž˜์Šค๋Š” StringPrinter๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜..

hyejin.tistory.com

์—ฌ๊ธฐ์„œ ๋งŒ๋“ค์—ˆ๋˜ DI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‘์šฉํ•ด์„œ Test ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•  ์˜ˆ์ •์ด๋‹ค. 

 

junit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด 

Test Class๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. 

์šฐ์„  ApplicationContext ๊ฐ์ฒด๋ฅผ ๋ฐ˜๋“œ์‹œ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  @Before ๋ฅผ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ์ „์— ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์คฌ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  junit test๋กœ ์‹คํ–‰์„ ํ•˜๋ฉด 

๊ฒฐ๊ณผ๊ฐ€ ์ด๋ ‡๊ฒŒ ๋‚˜์˜จ๋‹ค. 

์ด๋•Œ Test๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉด ์ดˆ๋ก์ƒ‰์œผ๋กœ ๋œจ๊ณ  ์‹คํŒจํ•˜๋ฉด ๋นจ๊ฐ„์ƒ‰?์œผ๋กœ ๋œฌ๋‹ค 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90