Skip to content

๐Ÿงพ @Nested

๊น€์ฐฌ๊ทœ edited this page Dec 22, 2023 · 1 revision

JUnit 5์—์„œ ๋„์ž…๋œ ๊ธฐ๋Šฅ์œผ๋กœ, ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ๋‚ด์— ์ค‘์ฒฉ๋œ(inner) ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. @Nested๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹จ์ผ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ๋‚ด์—์„œ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋ฅผ ์ข€ ๋” ๊ตฌ์กฐ์ ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋Š” ํŠน์ • ์ƒํƒœ๋‚˜ ๋™์ž‘์— ๊ด€๋ จ๋œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠน์ง•

  • ์ค‘์ฒฉ๋œ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค
    • @Nested ์–ด๋…ธํ…Œ์ด์…˜์€ ํŠน์ • ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ๋‚ด์— ๋…ผ๋ฆฌ์ ์ธ ํ•˜์œ„ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋ฅผ ์ •์˜
  • ์ƒํƒœ ๊ณต์œ 
    • ์ค‘์ฒฉ๋œ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋Š” ๋ฐ”๊นฅ์ชฝ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค์˜ private ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์„œ, ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์ƒํƒœ์—์„œ์˜ ๋™์ž‘์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์šฉ์ด
  • ๊ตฌ์กฐ์ ์ธ ํ…Œ์ŠคํŠธ
    • @Nested๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋ฅผ ์ข€ ๋” ๊ตฌ์กฐ์ ์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ์„ฑ๊ณต, ์‹คํŒจ, ์˜ˆ์™ธ ์ƒํ™ฉ ๋“ฑ์„ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ค‘์ฒฉ ํด๋ž˜์Šค๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Œ
  • ์ฝ๊ธฐ ์‰ฌ์šด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ
    • ์ค‘์ฒฉ๋œ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ข€ ๋” ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์ค‘์ฒฉ๋œ ํด๋ž˜์Šค๋Š” ํŠน์ • ์ฑ…์ž„์ด๋‚˜ ์ƒํ™ฉ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Œ

JUnit ์Šคํ„ฐ๋””

1์žฅ
๐Ÿ“ 1์žฅ
๐Ÿ“ 2์žฅ
  • [[๐Ÿงพ @Nested๋ž€?|๐Ÿงพ @N
๐Ÿ“ 1์žฅ ]]

๋งด๋ฒ„

๊ตฌ๊ฐ„ 1

์ด ๊ธ€์€ ์ฑ…์„ ์ฝ์€ ํ›„ ์ฑ… ๋ณธ๋ฌธ์„ ์ธ์šฉํ•˜๊ฑฐ๋‚˜ ๊ธ€์“ด์ด์˜ ์ƒ๊ฐ์„ ๊ฐ€๋ฏธํ•˜์—ฌ ์ž‘์„ฑ ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฑ…์˜ ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€, ์ง์ ‘ ์ฑ…์„ ์ฝ๊ณ  ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๋ฒ ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

JUnit์˜ ํ•„์š”์„ฑ

๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ๋ชจ๋“  ์ฝ”๋“œ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ฒŒ ๋˜์–ด์žˆ๋‹ค. ์–ด๋– ํ•œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‹ค์ œ ๊ตฌ๋™ํ™˜๊ฒฝ์—์„œ๋„ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€๋Š” ์ถฉ๋ถ„ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์œผ๋ฉด ๊ฒฐ๊ตญ ์ฆ๋ช…ํ•  ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ณดํ†ต ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ปดํŒŒ์ผ ๋ ˆ๋ฒจ์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ†ตํ•ด ์ง์ ‘ ํ•˜๋‚˜ ํ•˜๋‚˜ ์•ก์…˜์„ ์ทจํ•˜๋ฉด์„œ ๋™์ž‘์ด ์ž˜ ํ•˜๋Š”์ง€ ํ™•์ธ์„ ํ•˜๊ณ  ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉˆ์ถ˜ ํ›„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ฝ”๋“œ๋ฅผ ์ฐพ์•„๊ฐ€ ๊ณ ์ณ๊ฐ€๋Š” ๋ฐฉ์‹์„ ํ•œ๋‹ค. ์ž๋ฐ”์˜ ํ™˜๊ฒฝ์—์„œ๋ผ๋ฉด ์ต์…‰์…˜์„ ํ†ตํ•ด ์—๋Ÿฌ๊ฐ€ ์œ ๋ฐœ ๋  ๋ถ€๋ถ„์— ๋Œ€ํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถ”์ง€ ์•Š๋„๋ก ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•  ๊ฒƒ์ด์ง€๋งŒ ๊ฒฐ๊ตญ ๊ณ ์ณ์•ผ ํ•˜๋Š”๊ฑด ๋งคํ•œ๊ฐ€์ง€๋‹ค. ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ๊ฒฐ๊ตญ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ๋“ฑ๋ก, ์—๋Ÿฌํ™•์ธ, ์ˆ˜์ •์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ•  ๊ฒƒ์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์ด๋™์„ ํ•˜๋‚˜ํ•˜๋‚˜ ํ™•์ธํ•˜๋ฉด์„œ ๊ฒ€์ฆํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ์ด ํ–‰์œ„๋ฅผ ์ข‹์•„ํ•˜๊ฒ ์ง€๋งŒ ๊ฒ€์ฆ ๊ณผ์ •์— ์žˆ์–ด ์‹œ๊ฐ„์ด ๊ฐœ๋ฐœํ•˜๋Š”๋งŒํผ ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š” ๊ฐœ๋ฐœ์ž๋„ ๋ถ„๋ช…ํžˆ ์žˆ๋‹ค. JUint์€ ์ด ๋ฐ˜๋ณต์ ์ธ ํ…Œ์ŠคํŠธ ํ–‰์œ„๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ํ–‰ํ•˜๋„๋ก ํ•ด์ฃผ๋Š” ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ ์ด๋‹ค. ์ด JUnit์€ ์•ž์„œ ์–˜๊ธฐํ•œ ์ผ๋ จ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์ž๋™ํ™”๋˜์–ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์— ํ•„์ˆ˜์š”์†Œ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ์ข‹๊ฒ ๋‹ค ์ƒ๊ฐํ•œ '์—๋ฆญ ๊ฐ๋งˆ'์™€ '์ผ„ํŠธ ๋ฐฑ' ๋‘ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  SUnit์ด ์‹œ๋ฐœ์ ์ด๋‹ค.

JUnit์˜ ์„ค๊ณ„ ๋ชฉํ‘œ

JUnit์˜ ์„ค๊ณ„ ๋ชฉํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ 3๊ฐ€์ง€์ด๋‹ค.

ย  ย  - ์œ ์šฉํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋ณดํƒฌ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.

ย  ย  - ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ๊ฐ€์น˜๊ฐ€ ๋ณ€์น˜ ์•Š๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋ณดํƒฌ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.

ย  ย  - ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๋น„์šฉ์„ ๋‚ฎ์ถ”๋Š” ๋ฐ ๋ณดํƒฌ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.

๋‹จ์œ„ํ…Œ์ŠคํŠธ์˜ ์ •์˜

๋‹จ์œ„ํ…Œ์ŠคํŠธ๋Š” ๋ช…ํ™•ํ•œ ์ž‘์—… ๋‹จ์œ„์˜ ๋™์ž‘์„ ๊ฒ€์‚ฌํ•œ๋‹ค. ๋ช…ํ™•ํ•œ ์ž‘์—… ๋‹จ์œ„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ„์ฃผํ•œ๋‹ค. ํ†ตํ•ฉํ…Œ์ŠคํŠธ๋‚˜ ์ธ์ˆ˜ํ…Œ์ŠคํŠธ๋Š” ๋‹ค์–‘ํ•œ ์ปดํฌ๋„ŒํŠธ ๋˜๋Š” ์™ธ๋ถ€ํ™˜๊ฒฝ ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฒ€์ฆํ•œ๋‹ค. ์ฆ‰ ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋Š” ์–ด๋–ค ๋‹ค๋ฅธ ์ž‘์—…์—๋„ ์ง์ ‘์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ์ž‘์€ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ผ์ปซ๋Š”๋‹ค.

๋‹จ์œ„ํ…Œ์ŠคํŠธ์˜ ๊ทœ์น™

ย  ย  - ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋“ค๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.

ย  ย  - ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ…Œ์ŠคํŠธ ๊ฐ๊ฐ์˜ ์˜ค๋ฅ˜๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๋ณด๊ณ ํ•ด์•ผ ํ•œ๋‹ค.

ย  ย  - ์–ด๋–ค ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ• ์ง€ ์„ ํƒํ•˜๊ธฐ ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค.

๊ตฌ๊ฐ„ 2

์ดย ๊ธ€์€ย ์ฑ…์„ย ์ฝ์€ย ํ›„ย ์ฑ…ย ๋ณธ๋ฌธ์„ย ์ธ์šฉํ•˜๊ฑฐ๋‚˜ย ๊ธ€์“ด์ด์˜ย ์ƒ๊ฐ์„ย ๊ฐ€๋ฏธํ•˜์—ฌย ์ž‘์„ฑย ํ•œย ๊ธ€์ž…๋‹ˆ๋‹ค.ย ๋”ฐ๋ผ์„œย ์ฑ…์˜ย ๋Œ€ํ•œย ๋‚ด์šฉ์„ย ์˜ฌ๋ฐ”๋ฅด๊ฒŒย ์ดํ•ดํ•˜๋Š”ย ๊ฒƒ์€,ย ์ง์ ‘ย ์ฑ…์„ย ์ฝ๊ณ ย ์ดํ•ดํ•˜๋Š”ย ๊ฒƒ์ดย ๊ฐ€์žฅย ๋ฒ ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค

ย  ย  - public class ์—ฌ์•ผ ํ•˜๊ณ , ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์ง€ ์•Š๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.

ย  ย  - ํ…Œ์ŠคํŠธ ๋ฉ”์„œ๋“œ๋Š” @Test ์• ๋…ธํ…Œ์ด์…˜์ด ์žˆ์–ด์•ผ ํ•˜๊ณ , public์ด๊ณ , ํŒŒ๋ผ๋ฏธํ„ฐ๋„ ๋ฐ›์•„์„œ๋Š” ์•ˆ๋œ๋‹ค. ๋ฐ˜ํ™˜ํ˜•์€ void์—ฌ์•ผ ํ•œ๋‹ค.

ย  ย  - JUnit์€ ๊ฐ @Test ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋ฉฐ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ๋ฉ”์„œ๋“œ๋Š” ๊ฐ๊ธฐ ๋‹คย  ย  ย  ย  ๋ฅธ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ๊ณต์œ ๋  ์ˆ˜ ์—†๋‹ค.

ย  ย  - ํ…Œ์ŠคํŠธ ๊ฒ€์ฆ์—๋Š” Assert ํด๋ž˜์Šค์— ์ •์˜๋œ assert ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

ย  ย  - assert ๋ฉ”์„œ๋“œ ์ค‘ ํŒŒ๋ผ๋ฏธํ„ฐ 2๊ฐœ๋ฅผ ๋ฐ›๋Š” ์š”์†Œ๋“ค์€ ํ•ญ์ƒ ๊ฐ™์€ ํŒจํ„ด(๊ธฐ๋Œ€๊ฒฐ๊ณผ๊ฐ’,ํ…Œ์ŠคํŠธ๊ฐ’)์„ ๋”ฐ๋ฅธ๋‹ค.

assert method ๋ชฉ์ 
assertArrayEquals("message", A, B) ๋ฐฐ์—ด A์™€ B๊ฐ€ ์ผ์น˜ํ•จ์„ ํ™•์ธ
assertEquals("message", A, B) ๊ฐ์ฒด A์™€ B๊ฐ€ ์ผ์น˜ํ•จ์„ ํ™•์ธ. B๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ A์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ(A.equals(B))
assertSame("message", A, B) ๊ฐ์ฒด A์™€ B๊ฐ€ ๊ฐ™์€ ๊ฐ์ฒด์ž„์„ ํ™•์ธํ•œ๋‹ค. Equals๋Š” ๊ฐ’์„ ํ™•์ธ ํ–ˆ๋‹ค๋ฉด, Same์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋™์ผ ๊ฐ์ฒด์ธ์ง€ ๋น„๊ตํ•œ๋‹ค.(๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋น„๊ต)
assertTrue( "message", A) ์กฐ๊ฑด A๊ฐ€ ์ฐธ(TRUE)์ž„์„ ํ™•์ธ
assertNotNull( "message", A) ๊ฐ์ฒด A๊ฐ€ NULL์ด ์•„๋‹˜์„ ํ™•์ธ

ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ

ย  ย  - ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋Š” ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ• ๋•Œ ์“ฐ์ด๋Š” ๊ฐ์ฒด, ์ผ์ข…์˜ ํ…Œ์ŠคํŠธ ์ง‘ํ•ฉ์ด๋ฉฐ ๋ณ„๋„๋กœ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด JUnit์ด ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ๋‚ด ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋“ค์„ ํฌํ•จํ•˜๋Š” ์Šค์œ„ํŠธ๋ฅผ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

ํ…Œ์ŠคํŠธ ๋Ÿฌ๋„ˆ

ย  ย  - ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ผ์ข…์˜ ์—”์ง„

ํŒŒ๋ผ๋ฏธํ„ฐํ™”(parameterized)๋Š” ๋ฒ„์ „ 4, 5๊ฐ€ ์ฐจ์ด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋‚ด์šฉ ์ƒ๋žต.

[##Image|kage@d4NgW8/btsBT0cU6No/CjL2w7RKejik2RBPiqSrGK/img.png|CDM|1.3|{"originWidth":778,"originHeight":1161,"style":"alignCenter"}##][##Image|kage@3Wvps/btsBXQmxtWm/PPM8NTlIiKcYAvgSCaPKDK/img.png|CDM|1.3|{"originWidth":793,"originHeight":816,"style":"alignCenter"}##][##Image|kage@bThn1w/btsBVGSglNP/ISCFKVqKBFksfrtVfkfn91/img.png|CDM|1.3|{"originWidth":896,"originHeight":1057,"style":"alignCenter","caption":"JUnit5 ParameterizedTest ์ค‘, MethodSource ์ ์šฉ ์˜ˆ์‹œ, MOCK MVC๋Œ€์‹ , Controller์—์„œ์˜ param ์ž„์˜ ์ƒ์„ฑ"}##]


Clone this wiki locally