๊ฐ์ ์์กด์ฑ ์ฃผ์
์ฝ๋ ์ง๋ฌธ.
9๊ฐ์ ์ง๋ ์์ ์์ ์์ฑ์๋์ด ์ ๊ธ์ ๋ณด์ค์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๋น์ทํ ์ํฉ์ ์์ ํ์ต์๋ถ๋ค์ ์ํด ์ ๊ฐ ์ดํดํ ๋ฐฉ์์ ๋จ๊ฒจ๋์ต๋๋ค.์์๊ฒ ์ง๋ง, ๊ทธ๋๋ ๋ค์ ํ๋ฒ ์ ๋ฆฌํ๋ฉด"MemberService(์ดํ Service)์ MemberServiceTest(์ดํ Test)์์ ๊ฐ๊ฐ new MemoryMemberRepository(์ดํ Repository)๋ฅผ ํ๊ณ ์์ผ๋ ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ์์ฑ๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค."(์ดํ ์ ์ ์กฐ๊ฑด)ํด๊ฒฐํ๊ธฐ ์ํด Service์ ์์ฑ์๋ฅผ ๋ง๋ค์ด ์์ ํ๊ณ , @BeforeEach๋ก ๊ฐ๊ฐ ํ ๋นํด์คฌ์ต๋๋ค.(์ดํ ํด๊ฒฐ๋ฐฉ๋ฒ)์ ๊ฐ ์์ฑ์๋์ ์ง๋ฌธ์ ์ดํดํ๊ธฐ๋ก๋"์ ์ ์กฐ๊ฑด์์๋ new๋ก ๊ฐ๊ฐ ์์ฑํ๋๋ฐ, ํด๊ฒฐ๋ฐฉ๋ฒ์์๋ ๊ฒฐ๊ตญ์ @BeforeEach๋ก ๋๋ฉด new๋ก ํ ๋น๋๋๊ฒ ๋๊ฐ์ง ์๋"๋ ๋ง์ ๊ฐ์์.๋น์ทํ ๊ฒฐ๋ก ๋๊ปด์ง ์ ์์ง๋ง ๊ฒฐ๊ตญ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ก ์ด์ด์ง๋๋ค.์ ์ ์กฐ๊ฑด์์๋ Service์์ ์์ฑํ Repository์ Test์์ ์์ฑํ Repository๊ฐ ๊ฐ์์ผ ํ์ง๋ง ๋ค๋ฅด๊ณ , Test์์ ์์ฑํ Repository๋ ๊ฐ๊ฐ์ @Test์์๋ ๋ค๋ฅธ ๊ฐ์ฒด์ฌ์ผ ํ์ง๋ง ๊ฐ๋ค๋ ๋ฌธ์ ์ ์ด ์์๋ ๊ฒ์
๋๋ค.๊ทธ๋์ ํด๊ฒฐ๋ฐฉ๋ฒ์์๋ Service์ Test์์ ์์ฑํ Repository๊ฐ ๊ฐ๊ฒ ์ค์ ํ๊ณ (์์ฑ์์ ์ธ์๋ฅผ ํตํด ํต์ผ), Test์์ ๋ง๋ Repository๊ฐ (@BeforeEach๋ฅผ ํตํด)@Test๋ง๋ค ๋ค๋ฅธ ๊ฐ์ฒด๋ก ํ์ฉํ๊ฒ ๋ฉ๋๋ค.๋ฐ๋ผ์ ์์ฑ์๋์ด ์ดํดํ์
จ๋ "๊ฒฐ๊ตญ ์๋ก ๋ค๋ฅธ๊ฑด ๋๊ฐ์ง ์๋"๋ผ๋ ์ง๋ฌธ์ ์ ์ ์กฐ๊ฑด์ด ๋ค๋ฅธ ๋ถ๋ถ์ด์๋ค๊ณ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.