๐ ํ ์คํธ์ ์์กด
์์กด์ ๋ฌด์กฐ๊ฑด ๋์๊ฐ์ ๋ํด์ ์ด์ผ๊ธฐํ๋ค.
๋ฌผ๋ก ๋ต์ ์๋๋ค. ์์กด์ด ์์ผ๋ ค๋ฉด ํ๋์ ๊ฐ์ฒด๊ฐ ๋ชจ๋ ๊ฑธ ๋ค ์ฒ๋ฆฌํด์ผํ๊ณ , ๋ณ๊ฒฝ ์๊ตฌ์ฌํญ์ด ๋ฐ์ํ ๋ ๋ณต์กํด์ง๋ค.
์ด๋ฅผ ์ํด์ ์ ์ ํ ๋ฒ์๋ก ์ฑ ์์ ๋๋๋๊ฒ ์ข๊ณ , ๋ถํ์ํ ์์กด ๋์์ ์ ๋ฆฌํด์ผํ๋ค.
๐ ํ ์คํธ์ ๊ด๋ จํ ๊ถ๊ธ์ฆ
1.ํตํฉ ํ ์คํธ์ธ ๊ฒฝ์ฐ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ ์คํธํด์ผ ํ ๊น?
์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ฅ์ ๊ฒ์ฆํ ํ์๋ ์๋ค. ํ์ง๋ง, ๊ทธ ๋ถ๋ถ์ ํ์ฉํ๋ ๋ก์ง์ ๋ํ ๊ฒ์ฆ์ ํ์ํ ์ ์๊ณ , ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ณ๊ฒฝํ ์ ์์ผ๋ ์ค์ ๊ฐ์ฒด๋ฅผ ํ์ฉํ๋๊ฒ ์ข๋ค.
์์กด์ฑ ํ ์คํธ๋ฅผ ํ ๋๋ ์ค์ ์ธ๋ถ ์์กด์ฑ์ ์ฌ์ฉํ๊ฑฐ๋, Stub ํน์ Fake๋ก ๋์ฒดํ์.
โค๏ธ 3์ฃผ์ฐจ ํ๊ธฐ
์ธ๋ถ์ ์์กดํ๋ ์ธ์ ํ ์คํธ ๋ฏธ์ ์ ํตํด ์ธ๋ถ ์์กด์ฑ์ ๋ํ ๊ณ ๋ฏผ์ ํ๋ ๊ฒ ๊ฐ๋ค.
๋ฏธ์ ์ Github ๋ก๊ทธ์ธ์ ์ด๋ป๊ฒ ํ ์คํธํ ๊ฑด์ง ๊ณ ๋ฏผํ ์ ์๋ ๋ก๊ทธ์ธ ๋ฏธ์ ์ด ์ฃผ์ด์ก๊ณ , ๊ฐ์ด๋์ ๋ฐ๋ผ ๋ฏธ์ ์ ์ ์ฐจ ์งํํด๊ฐ๋ฉด์ ์ธ๋ถ ํ ์คํธ์ ํ ์คํธ์ ๋ํด์ ์์ธํ ์๊ฒ๋๋ค.
์ฌ๊ธฐ์ fakeController๋ฅผ ์ฌ์ฉํ๊ณ url์ application ์ค์ ์ ๋ฐ๋ผ ํ ์คํธํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
์ธ์ฆ์๋ฒ์ ๋ฆฌ์์ค ์๋ฒ์ ๊ฒฝ์ฐ(์ฌ๊ธฐ์๋ github) ๋ด๊ฐ ์ง์ ์ ์ผ๋ก ํ ์คํธํ๊ธฐ์๋ ์ด๋ ค์ฐ๋ fakeController๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํ๊ณ ํ ์คํธ์์ url์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ฌผ๋ก test - resource์ application-properties๋ฅผ ๋ง๋ค๊ฑฐ๋, main์ prod ์ค์ ํ์ผ์ ๋ฐ๋ก ๋ง๋๋ 2๊ฐ์ง์ ๋ฐฉ๋ฒ์ด ์์ง๋ง, ๊ฐ์ธ์ ์ผ๋ก ๋ณ๋์ ํ๋กํ์ ์ค์ ํ๋๊ฒ ๋ณด๋ค test์ ์ค์ ํ์ผ์ ์์ฑํ๋๊ฑธ ์ ํธํ๋ค.(๋ฌผ๋ก ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฆ)
๊ทธ๋ ๊ฒ fakeController๋ฅผ ๋ง๋ ๋ค ์ค์ ์์ฒญ์ ๋ณด๋ด๋ GithubClient ๊ฐ์ฒด์์ url์ ํ๊ฒฝ๋ณ์๋ก ๋ฐ์์ ๋ณ๋์ ํ๊ฒฝ์ ๊ตฌ์ถํ๋๊ฒ์ด๋ค.
์๋๋ ๋ค๋ฅธ ์ค์ ํ์ผ๋ก url์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. oauth2์์ code๋ฅผ ๋ฐ๋ ๋ถ๋ถ์ endpoint์ ์ธ์ฆ ํ token์ ๋ฐ๊ธ๋ฐ๋ endpoint๋ฅผ ์ค์ ํ์ผ์ ํตํด ์ค์ ์๋น์ค(github)์ ์์ฒญ์ ๋ณด๋ผ์ง, local์์ ์์ฑํ fakecontroller๋ก ๋ณด๋ผ์ง๋ฅผ ์ ํํ ์ ์๋ค.
์ด๋ฅผ ํตํด์ ATDD์์ ์ธ์ฆ์ ์ด๋ค์์ผ๋ก ํ ์คํธํ๊ณ ์ฐํ๊ฐ ๊ฐ๋ฅํ์ง ์ ์ ์์๊ณ , ์ค๋ฌด์์๋ ์ ์ฉํ๊ธฐ ์ด๋ ค์ด ๋ถ๋ถ์ ๋ํด์ ์์ธํ ํ์ตํ ์ ์์๋ค.
๐ RestAssured ์ธ์ฆ ์ ๊ณต ์ข ๋ฅ
๊ทธ๋ฆฌ๊ณ ์๋๋ RestAssured์์ ์ ๊ณตํ๋ ์ธ์ฆ์ด๋ค.(์ถ์ฒ - NextStep)
1.HTML form
2.Basic Auth
3.Bearer Auth
4.Header๋ฅผ ์ถ๊ฐํ ์ธ์ฆ
'Study > Next Step' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Next Step] ATDD, ํด๋ฆฐ ์ฝ๋ with Spring 8๊ธฐ 2์ฃผ์ฐจ ๋ฆฌ๋ทฐ (1) | 2024.02.17 |
---|---|
[Next Step] ATDD, ํด๋ฆฐ ์ฝ๋ with Spring 8๊ธฐ 1์ฃผ์ฐจ ๋ฆฌ๋ทฐ (2) | 2024.02.02 |