Mission1. Baseball-String Calculator
๋ฅ์คํธ ์คํ
: ์๋ฐ ํ๋ ์ด๊ทธ๋ผ์ด๋ - ์ซ์ ์ผ๊ตฌ๊ฒ์
์ซ์์ผ๊ตฌ๊ฒ์ - 1. ๋ฌธ์์ด ๊ณ์ฐ๊ธฐ ๊ตฌํ ๋ฐ ๋จ์ ํ
์คํธ ์์ฑ
๋ฌธ์์ด ๊ณ์ฐ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํ
โ ์๊ตฌ์ฌํญ
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฌธ์์ด ๊ฐ์ ๋ฐ๋ผ ์ฌ์น์ฐ์ฐ์ ์ํํ ์ ์๋ ๊ณ์ฐ๊ธฐ๋ฅผ ๊ตฌํํด์ผ ํ๋ค.
์ฐ์ฐ์ ์ฐ์ ์์๋ ์ ์ฉ ํ์ง ์์ผ๋ฉฐ ์ผ์ชฝ ๋ถํฐ ์ฌ์น์ฐ์ฐ์ ์ํํ๋ค.
๋ฌธ์ ์ ์
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ ์๋
Scanner
๋ฅผ ์ด์ฉ ํUser
๊ฐ ํ์ํจ.๋ฌธ์์ด์ ์ ๋ ฅ ๋ฐ์์ ๊ฐ๋ณ ์์์ ์ ๊ทผ์ด ์ฌ์ด
Array
๋ฐฐ์ด๋ก ๋ณํ์ด ํ์ํจ.Array
์์ ๊ฐ๋ณ ์์์ ์ ๊ทผ ํ ๋ ๋ง๋ค ๋ฌธ์์ด ์์์ด ํผ์ฐ์ฐ์์ธ์ง, ์ฐ์ฐ์์ธ์ง ๊ตฌ๋ถ์ด ํ์ํจ.์ฐ์ฐ์์ ๋ฐ๋ฅธ ํผ์ฐ์ฐ์์์ ์ฐ์ฐ์ ์ํ ํ๋ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ด ํ์ํจ.
๐ ํ์ํ ๋ด์ฉ์ ์ฝ๋๋ก ์ฎ๊ธธ ๋, ์ด๋ค ์ํคํ ์ฒ ๊ตฌ์กฐ๊ฐ ๋ง๋ค์ด์ ธ์ผ ํ ๊น?
์ญํ ๊ณผ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ์ํ ๊ณ์ธต ๊ตฌ์กฐ ์ค๊ณ
์ฌ์ฉ์์ ์ , ์ถ๋ ฅ์ ๋ค๋ฃจ๋
Presentation Layer
๋ฌธ์์ด ์์์ ์ฐ์ฐ ํ
Service Layer
์ดํ๋ฆฌ์ผ์ด์ ์ ์คํ ํ
Main
๐ ์ ๋ฐฉ์์ผ๋ก ๊ฐ์ฅ ๋ฌํํ๊ฒ ์ฝ๋๊ฐ ์๋ ํ ์ ์๋๋ก ๊ตฌํ
๐โโ๏ธ ์๋ํ๋ ์ฝ๋ ๊ตฌํํ๊ธฐ
๊ธฐ๋ฅ์ด ์ ์์ ์ผ๋ก ์๋ํ ์ ์๋ ๊ฐ์ฅ ์์ ๋จ์์ ๊ฐ๋ฐ์ ์์ ํ๊ณ ํด๋์ค๋ช
์ ๊ธฐ์ค์ผ๋ก ๊ณ์ธต์ ์ ์ ๋๋ด๋ค. CalculatorService
, CalculatorUser
, StringCalculatorMain
์ด๋ ๊ฒ ํ์ผ์ ์์ฑ ํ ๋ค ๊ฐ์ฅ ์ฝ๊ฒ ์ ๊ทผ ํ ์ ์๋ ์ฌ์ฉ์์ ์
๋ ฅ ๊ฐ์ ๋ฐ๋ ๊ณผ์ ์ ๋จผ์ ๊ตฌํ ํ๊ณ split
๋ฉ์๋๋ฅผ ํ์ฉํ String -> Array
๋ณํ ์์
์ ๋ง๋ฌด๋ฆฌ ์ง์๋ค.
๋ฌธ์์ด ์์์ด ๋ฐฐ์ด๋ก ๋ณํ ๋ ์ํ์์ ๋ฐฐ์ด์ ์์์ ์ ๊ทผ ํ์ฌ ์ซ์์ ์ฐ์ฐ์๋ฅผ ๋ถ๋ฆฌ ํด์ผ ํ๋๋ฐ, ํ์ด์ฌ์์๋ type
์ผ๋ก ์ฝ๊ฒ ๊ฒ์ฌ ํ ์ ์์์ผ๋ ์์ฝ๊ฒ ์๋ฐ์์๋ ๋ ํผ๋ฐ์ค๊ฐ ๋๋ถ๋ถ ์ง์ ๊ตฌํ ํ๋ ๋ด์ฉ์ด๊ฑฐ๋, Apache์ ํจํค์ง๋ฅผ ์ด์ฉ ํ๋ ๊ฒ์ด์๋๋ฐ ๋ฏธ์
์ ํด๊ฒฐํ๋ ๋ฐ ์ค์ ์ ๋๋ค๋ฉด ๋น์ฐํ ์ธ๋ถ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ ์ฝ๊ฒ ํ์์ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ์๋ฐ์ ์ต์ํด์ง๋ ๊ฒ์ด ๋ชฉํ์ด๊ธฐ ๋๋ฌธ์ ์ง์ ๊ตฌํํ๋ค.
์ง์ ๊ตฌํํ ์ซ์ ํ์ ๊ฒ์ฌ
์ฐ์ฐ์ ๋ถ๋ถ์ ํ์ด์ฌ์ ์ฌ์ฉ ํ๋ฉด์ ๋์ ๋๋ฆฌ์ ํค๋ ๋งคํ ๊ฐ, ๋ฐธ๋ฅ๋ ํจ์์ ์ค๋ธ์ ํธ ์ฃผ์ ๊ฐ์ ์ ์ฅ ํ ํ ์ฌ์ฉ์ ๋ง์ด ํด ์๋๋ฐ ์๋ฐ์์๋ ๋๋ค๊ฐ ์ง์๋๊ณ ์์ด ๋น์ทํ๊ฒ ๊ตฌํ ํ ์ ์์๋ค.
์ ์ฝ๋๋ฅผ ์์ฑ ํ๋ฉด์ ๊ตฌ๊ธ๋ง์ ์ ๋ง ๋ง์ด ํ์๋๋ฐ BiFunction
์ ์๊ธฐ ๊น์ง ์๊ฐ์ ์ ๋ง ์ค๋ ์ด ๊ฒ ๊ฐ๋ค. ๋ฌด์์ง๊ฒฝ์ผ๋ก ๊ฒ์ ํ๋ค๋ณด๋ BiFunction
ํค์๋๋ฅผ ์ป์๊ณ ํด๋น ๋ธ๋ก๊ทธ ์ ์๋ ๋ด์ฉ์ ์ฐธ๊ณ ๋ก ํด์ ์ฝ๋๋ฅผ ์์ฑ ํ๋ค.
์ด๋ ๊ฒ ํผ์ฐ์ฐ์์ ์ฐ์ฐ์๋ฅผ ๊ตฌ๋ถ ํ ์ ์๋ ์ํฉ์ด ๋์์ผ๋ ๋ฐ๋ก ๋ฌธ์์ด ๊ณ์ฐ๊ธฐ์ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ธ ์ฐ์ฐ ๋ก์ง์ ์์ฑ ํ๋ค.
๋ฌธ์์ด ์์์ ์ฐ์ฐ ํ๊ธฐ ์ํด ๋ฐฐ์ด๋ก ๋ฐํ ๋ฐ์๋ ๋ฐ์ดํฐ๋ ํจํด์ด ์กด์ฌํ๋๋ฐ, 0๋ฒ์งธ ๋ถํฐ ์ง์ ์ธ๋ฑ์ค๋ ํผ์ฐ์ฐ์์ด๊ณ , ํ ์๋ ์ฐ์ฐ์ ๊ธฐํธ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ณต ํ๋ฉด์ ์ฐ์ฐ์๋ง ๋ฝ์๋ ๋๊ณ , ํผ์ฐ์ฐ์๋ง ๋ฝ์๋ ๋๋ ์ต์ํ๊ฒ ์์ฑํ๊ธฐ ์ํด 0๋ฒ์งธ ๋ถํฐ ๋ฐ๋ณต ํ ์ ์๋ ํผ์ฐ์ฐ์๋ฅผ ํ๊ฒํ๋ค.
๋ฌธ์์ด ์์ ์ฐ์ฐ
์ด์ ์ ์ฐ์ฐ ํ๋ ๊ฐ์ ๋ค์ ํผ์ฐ์ฐ์์ ๋ค์ ์ฐ์ฐ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฌ์ฉ ํ์๊ณ ์ด๋ ๊ฒ ๋ฌธ์์ด ์ฐ์ฐ์ ์ฝ์๋ก ํ ์คํธ ํด ๋ณด์์ ๋ ์ ์์ ์ผ๋ก ๊ฐ์ด ๋ฐํ ๋๋ ๊ฒ์ ํ์ธ ํ ์ ์์๋ค.
๋ฆฌํฉํฐ๋ง
์ ์์ ์ธ ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋๋ ์์ฑ์ด ์๋ฃ ๋์์ผ๋ ์ด์ ๊ฐ์ฒด๊ฐ ๋๊ณ ์๋ ํน์ฑ๋ค์ ์ด์ฉ ํด์ ๋จ์ผ ์ฑ ์ ์์น, ์ญํ ๊ณผ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ ๋ฑ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ์์ด ์ถ ํ ํ ์คํธ ์ ๋จ์ผ ๋ฉ์๋ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ ์ ์๋๋ก ์ ๋ ํ ๊ณํ์ด๋ฉฐ ๋ฉ์ธ ์ดํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ ๋ ์์ ํ์ง ์์ ๊ฒ์ด๋ค.
์ผ๋จ, ๋น์ฆ๋์ค ๋ก์ง์ด ๋ด๊ฒจ ์๋ ์๋น์ค ํ์ผ์ ๋ชจ๋ ์ฝ๋๊ฐ ๋ด๊ฒจ์๋ค. ํผ์ฐ์ฐ์๋ฅผ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ, ์ฐ์ฐ์ ๊ธฐํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฐ์ฐ ํ๋ ๋ฉ์๋, ๋ฌธ์์ด ์ฐ์ฐ, ๋ฐฐ์ด๋ก ๋ณํ ๋ฑ ์๋น์ค ๊ณ์ธต์ ๋ชจ๋ ์์กดํ๊ฒ ๋ ๊ฒ ๊ฐ์ผ๋ ๋ถ๋ฆฌ ์ํฌ ํ์๊ฐ ์๋ค.
๐ ์ฐ์ฐ์๋ฅผ ๋ค๋ฃจ๋ ๊ฐ์ฒด์ ํผ์ฐ์ฐ์(๋ฌธ์์ด ์์์ ์)๋ ์ธ์คํด์คํ๊ฐ ํ์ํ ๊ฐ์ฒด์ผ๊น?
์ฐ์ฐ์ ๊ธฐํธ๋ฅผ ๋ด๊ณ ์๋ ๊ฐ์ฒด๋ ์๋ฌด๋๋ ์ ํธ์ฑ ํด๋์ค ๋๋์ด ๊ฐํ๋ค. ๊ทธ ์ด์ ๋ ํ๋์ ์์์๋ ์ฌ๋ฌ ๊ฐ์ ์ฐ์ฐ ๊ธฐํธ๋ค์ด ์๋๋ฐ, ์ด ๋ ๋ง๋ค ์ฐ์ฐ ๊ธฐํธ๋ฅผ ๋๊ฒจ ๋ฐ์ ํด๋์ค๋ฅผ ์์ฑ ํ๋ ๊ฒ์ ๋๋ฌด ๋นํจ์จ์ ์ด๋ค. ๊ฒฐ๋ก ์ ์ฐ์ฐ์ ๊ธฐํธ ๊ฐ์ฒด๋ ์ ํธ์ฑ ํด๋์ค๋ก ๋ง๋ค์ด์ผํ๋ค.
ํผ์ฐ์ฐ์๋ฅผ ๋ค๋ฃจ๋ ๊ฐ์ฒด๋ ๋ฌธ์์ด ์์์ ์์ ๊ฐ์ผ๋ก ์ ์ฅ ํ๊ณ ์ฌ์ฉ ํ๋ฉด ๊ฐ๋ฅํ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง, ๋ฌธ์์ด ์์์ ์ฌ๋ฌ๋ฒ ์ ๋ ฅ ํ๋ ์ํฉ์ด ์จ๋ค๋ฉด ์ด ๋ํ ์์์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฒ ์ธ์คํด์คํ๋ฅผ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ํธ์ฑ์ผ๋ก ํ๋จํ์๋ค.
๋ถ๋ฆฌ๋ ์ฐ์ฐ ๊ธฐํธ ๊ฐ์ฒด
๋ถ๋ฆฌ๋ ํผ์ฐ์ฐ์ ๊ฐ์ฒด
์ด๋ ๊ฒ ๋จ์ผ ์ฑ ์์ ์์น์ ๋ฐ๋ผ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฆฌ ํ๊ณ , ์๋ก๊ฐ ์์กดํ ํ์๊ฐ ์๋ ๊ตฌ์กฐ๊ฐ ๋์๋ค. ์ด๋ ๊ฒ ์ค๊ณ๋ฅผ ํ์ ๋ ํ ์คํธ ํ ๋๋ ํธ๋ฆฌํ๋ค. ๊ฒฐ๊ตญ ๋จ์ผ ๋ฉ์๋์ ์ ์, ์์ธ ์ผ์ด์ค๋ง ๊ฒ์ฆ ํ๋ฉด ๋์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฌธ์์ด ์ฐ์ฐ์ ์ํ ํ๋ ์๋น์ค ๊ณ์ธต์ ์ด์ ์ฐ์ฐํ๋ ๋ฉ์๋ ํ๋๋ง ์กด์ฌ ํ๋ค. ์ฐ์ฐ์ด ํ์ํ ๋๋ง ์๋น์ค ๊ณ์ธต์์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌ ํ๋ฉด ๋๋ค.
๊ตฌ์กฐ๋ฅผ ์ก์ ๋ค ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด ๋๋ฆ ์์ธ ์ผ์ด์ค๋ฅผ ์ค์ ํ๋ค๊ณ ํ๋ค ๋น ์ ธ๋๊ฐ ํ๋ค์ด ๋ณด์๋ค.
์์ ๋๋์ -> a / b ์ผ ๋, a๋ ์์ ์ฐ์ฐ ๋ ๊ฐ์ ๋ฐ์ ์ธ์์ด๊ธฐ ๋๋ฌธ์ 0์ด ์๋์๋ ์๊ณ ๋ง์ ์๋ ์์ง๋ง, ๋์ฒด์ ์ผ๋ก b๊ฐ 0์ธ ๊ฒฝ์ฐ ์์ธ์ฒ๋ฆฌ๋ฅผ ํ์๋๋ฐ, a๊ฐ 0์ผ ์ ์๋ค๋ ๋ด์ฉ์ ๋น ํธ๋ ธ๋ค.
๋ฌธ์์ด ์์์ ์ ๋ฌ ๋ฐ์ ๋ฐฐ์ด๋ก ๋ณํ ํ๋ ๊ณผ์ ์ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ํ๋ค. ๋ง์ฝ, ๊ณต๋ฐฑ์ด ์ค๊ฐ์ ์์ง๋ง ์์ ๋ค์ ๊ณต๋ฐฑ์ด ์ค์ง ์๋ ๊ฒฝ์ฐ๋ ์๋ฌ ์ํฉ์ ๋ง๋ค์ด์ฃผ๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
์ด๋ ๊ฒ ์ซ์๋ ์ฐ์ฐ ๊ธฐํธ ๋ค์ ๊ณต๋ฐฑ์ด ์๋ ๊ฒฝ์ฐ๋ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ํด ์ฃผ์๋ค.
์ฐ์ฐ์ ๊ธฐํธ๊ฐ ๊ณต๋ฐฑ์ ๊ตฌ๋ถ ํ์ฌ ์ฐ์์ผ๋ก ์ค๋ ๊ฒฝ์ฐ๊ฐ ์๋ค๋ฉด ์๋ฌ๋ก ์ ๋๋ฅผ ํด์ผํ๋ค.
์์์ ์ฌ์ฉํ calculate
๋ฉ์๋์์ ์ซ์๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์๋ฌ๋ก ์ ๋ํ๋ฉด ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌ ํ ์ ์๋ค. ๊ธฐ์กด ์์ค ์ฝ๋์์ ์ซ์๋ฅผ ๊ฒ์ฌํ ํ ์ซ์์ผ ๋ ํผ์ฐ์ฐ์ ๊ฐ์ ๋๊ฒผ๋๋ฐ ์ฐ์ฐ์๊ฐ ์ฐ์์ผ๋ก ์ค๋ ๊ฒฝ์ฐ๋ ์ด์ ํ ๋น ๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฐ์ฐ์ ํ๊ฒ ๋๋ ์๋์น ์์ ๊ฐ์ด ๋์ฌ ์ ์๋ค.
ํ
์คํธ ์ผ์ด์ค ์์ฑ
๐ค ์ด๋ป๊ฒ ํ ์คํธ ํ ๊ฒ์ธ๊ฐ?
์ ํธ์ฑ ํด๋์ค๊ฐ ์ ๊ณต ํ๋ ๋ฉ์๋์ ์ ์ ์ผ์ด์ค, ์์ธ ์ผ์ด์ค ๊ฒ์ฆ
ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ๊ฒฐ๊ณผ ๊ฐ ๊ฒ์ฆ
๊ทธ ์ธ ์ดํ๋ฆฌ์ผ์ด์ ์ปจํธ๋กค๋ฌ ๋จ์๋ ํด์ผ ํ์ง๋ง, ์ฝ์ ํ๋ก์ ํธ์ด๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฉ์๋ ๊ฒ์ฆ์ ์์ฃผ๋ก ๋จ์ ํ ์คํธ๋ฅผ ์์ฑ ํ ๊ณํ์ด๋ค. ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑ ํ๋ฉด ์ข์ ์ด์ ์ ๊ต์ฅํ ๋ง์ ๊ฒ ๊ฐ๋ค. ๊ทธ๊ฑธ ์์ง๋ง ๊ต์ฅํ ๋ง์ ์๊ฐ์ ์์์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ๋์น๋ ์์ ์ค ํ๋์ธ๋ฐ, ๊ทธ ์ค ์ด์ ์ ๋ฝ์ ๋ณด์๋ฉด ์ด๋ฐ ๋ด์ฉ๋ค์ด ์์ ๊ฒ ๊ฐ๋ค.
์ฝ๋ ๊ตฌํ ๋จ๊ณ์์ ์๊ฐ ํ์ง ๋ชป ํ๋ ์์ธ ์ผ์ด์ค
ํ๊ท ์ผ์ด์ค ์๋ฐฉ
์๋ชป๋ ๋ฉ์๋ ๋ฐํ ๊ฐ
Fixture
์์ฑ
ํ
์คํธ ์ผ์ด์ค๋ฅผ ์คํ ์ํฌ ๋ ๋ง๋ค ์ฌ์ฉ ํด์ผ ํ ๋ฌธ์์ด ์์๊ณผ, ์๋น์ค ํด๋์ค๋ฅผ ์ธ์คํด์คํ ํจ์ผ๋ก ์จ ๋ฐ๋ณต๋๋ ์ฝ๋๋ฅผ ์ค์ผ ์ ์๋ค. ํ์ง๋ง, ๋ฌธ์์ด ์์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋ช
ํํ Given
์ ์ฃผ๊ธฐ ์ํด ํ
์คํธ ์ผ์ด์ค ๋ด๋ถ์์ ์์ฑํด๋ ์๊ด ์์ ๊ฒ ๊ฐ๋ค.
์ ํธ ํด๋์ค ๊ฒ์ฆ
ํ์ด์ฌ์์ ํ
์คํธ ์ฝ๋์ ๋ฉ์๋ ์ด๋ฆ์ ๊ตญ๋ฌธ์ผ๋ก ์ง๋๊ฑธ ์ ํธํ๋ ํธ์ธ๋ฐ, ์๋ฐ์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ ํ๋ค. ํ์ง๋ง DisplayName
์ด ์๋ค๋ฉด ๊ตณ์ด ๋ฉ์๋๋ฅผ ๊ตญ๋ฌธ์ผ๋ก ํด์ผ ๋์๊น๋ ์๊ฐ๋ ๋ค์๋ค.
ํ
์คํธ ๋ฐฉ๋ฒ์ Given-When-Then
๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋์ด ์ดํดํ๊ธฐ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ ํ๊ณ , ๋๋ถ๋ถ์ ์ผ์ด์ค๋ ๊ทธ๋ ๊ฒ ์ฌ์ฉ ํด ์๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฃผ์ด์ง ๋ฐ์ดํฐ๊ฐ ์ด๋ ํ ํ๋์ ํ์ ๋ ์ด๋ฌํ ๋ฐ์์ ๋ณด์ผ ๊ฒ์ด๋ค ๋ผ๋๊ฒ ์ํฌํ๋ก์ฐ ์์ฒด๋ฅผ ๋ํ๋ด๊ธฐ ๋๋ฌธ์ ์ ์ฝ๊ฒ ์ดํดํ ์ ์๋ค.
ํ๋์ ๋ฉ์๋์์ ์ ์, ์ด์ ๊ฒ์ฆ์ ํ ๋ ParameterizedTest
๋ฅผ ์ด์ฉ ํ๋ฉด ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฆ ํ ์ ์๋ ์ฅ์ ์ด ์๊ธฐ ๋๋ฌธ์ 1๊ฐ์ ๋ฉ์๋์์ ์ฌ๋ฌ๊ฐ์ง ์ํฉ์ ๋ํ๋ผ ์ ์๋ค.
์๋ฌ ์ผ์ด์ค ๊ฒ์ฆ
์๋ฌ ์ผ์ด์ค๋ฅผ ๊ฒ์ฆ ํ๋ค๋ ๊ฒ์ ์๋์ ์ผ๋ก ๋ด๊ฐ ํด๋น ์ผ์ด์ค๋ฅผ ์์ธ ์ฒ๋ฆฌ ํ๋ค๋ ๋ด์ฉ๊ณผ ๊ฐ๋ค. ํ์ง๋ง ์๋์ ์ด์ง ์์ ๊ฒฝ์ฐ ์ด๋ ๊ฒ ์ปดํ์ผ ์๋ฌ๋ฅผ ๋ง๋ ์๋น์ค๊ฐ ์ข
๋ฃ๋๋ ๊ฒ์ ๋ฏธ์ฐ์ ๋ฐฉ์ง ํ ์ ์๋ค. Mission1 - ํ์ต ํ
์คํธ ์ค์ต
๊ณผ์ ์์ ์ฌ์ฉ ํ๋ Exception
ํด๋์ค ๊ฒ์ฆ + ErrorMessage
๊ฒ์ฆ์ ํตํด ํด๋น ์๋ฌ ์ผ์ด์ค๋ฅผ ํ
์คํธ ํ ์ ์๋ค.
์ด๋ ๊ฒ ํ
์คํธ ํ๋ ์ด์ ๋ Throw
๋ก ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ์ง๋ง Try-Catch
์์ ํด๋น ์๋ฌ ์ํฉ์ด ์ ์กํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐฉ์ง ํ ์ ์๋ค.
ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง ๊ฒ์ฆ
์์์ ์ ํธ์ฑ ๋ฉ์๋๋ค์ ํ
์คํธ ํ๊ธฐ ๋๋ฌธ์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฃผ์ด์ง ๋ฌธ์์ด ์์์ด ์ํ๋ ๊ฐ์ ๋ฐํ ํ๋์ง ํ
์คํธ๋ง ํ๋ฉด ๋๋ค. ๊ทธ ๊ณผ์ ์์ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ParameterizedTest
๋ก ๋ฃ์ด ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ์กฐ๊ธ ๋ ์๊ตฌํ ์ ์์ง๋ง ์ผ๋ฐ์ ์ธ ์ผ์ด์ค์ด๊ธฐ ๋๋ฌธ์ ํ๋์ ๋ฌธ์์ด ์์๋ง ๊ฒ์ฆ ํ๋ค.
Last updated