Study/Next Step / / 2024. 3. 5. 19:13

[Next Step] ATDD, ํด๋ฆฐ ์ฝ”๋“œ with Spring 8๊ธฐ 3์ฃผ์ฐจ ๋ฆฌ๋ทฐ

๐ŸŽˆ ํ…Œ์ŠคํŠธ์™€ ์˜์กด

ref : Next Step

์˜์กด์€ ๋ฌด์กฐ๊ฑด ๋‚˜์œ๊ฐ€์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐํ–ˆ๋‹ค.

๋ฌผ๋ก  ๋‹ต์€ ์•„๋‹ˆ๋‹ค. ์˜์กด์ด ์—†์œผ๋ ค๋ฉด ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ๋ชจ๋“ ๊ฑธ ๋‹ค ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๊ณ , ๋ณ€๊ฒฝ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•  ๋•Œ ๋ณต์žกํ•ด์ง„๋‹ค.

์ด๋ฅผ ์œ„ํ•ด์„œ ์ ์ ˆํ•œ ๋ฒ”์œ„๋กœ ์ฑ…์ž„์„ ๋‚˜๋ˆ„๋Š”๊ฒŒ ์ข‹๊ณ , ๋ถˆํ•„์š”ํ•œ ์˜์กด ๋Œ€์ƒ์€ ์ •๋ฆฌํ•ด์•ผํ•œ๋‹ค.

 

๐Ÿ”Ž ํ…Œ์ŠคํŠธ์™€ ๊ด€๋ จํ•œ ๊ถ๊ธˆ์ฆ

1.ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์ธ ๊ฒฝ์šฐ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ• ๊นŒ?

 ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋Šฅ์„ ๊ฒ€์ฆํ•  ํ•„์š”๋Š” ์—†๋‹ค. ํ•˜์ง€๋งŒ, ๊ทธ ๋ถ€๋ถ„์„ ํ™œ์šฉํ•˜๋Š” ๋กœ์ง์— ๋Œ€ํ•œ ๊ฒ€์ฆ์€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๊ณ , ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ์‹ค์ œ ๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

ref : Next Step

์˜์กด์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ ํ• ๋•Œ๋Š” ์‹ค์ œ ์™ธ๋ถ€ ์˜์กด์„ฑ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, Stub ํ˜น์€ Fake๋กœ ๋Œ€์ฒดํ•˜์ž.

 

โค๏ธ 3์ฃผ์ฐจ ํ›„๊ธฐ

์™ธ๋ถ€์— ์˜์กดํ•˜๋Š” ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ ๋ฏธ์…˜์„ ํ†ตํ•ด ์™ธ๋ถ€ ์˜์กด์„ฑ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. 

๋ฏธ์…˜์€ Github ๋กœ๊ทธ์ธ์„ ์–ด๋–ป๊ฒŒ ํ…Œ์ŠคํŠธํ• ๊ฑด์ง€ ๊ณ ๋ฏผํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ๊ทธ์ธ ๋ฏธ์…˜์ด ์ฃผ์–ด์กŒ๊ณ , ๊ฐ€์ด๋“œ์— ๋”ฐ๋ผ ๋ฏธ์…˜์„ ์ ์ฐจ ์ง„ํ–‰ํ•ด๊ฐ€๋ฉด์„œ ์™ธ๋ถ€ ํ…Œ์ŠคํŠธ์˜ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์•Œ๊ฒŒ๋๋‹ค.

ref : Next Step

์—ฌ๊ธฐ์„œ fakeController๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  url์„ application ์„ค์ •์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค. 

์ธ์ฆ์„œ๋ฒ„์™€ ๋ฆฌ์†Œ์Šค ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ(์—ฌ๊ธฐ์„œ๋Š” github) ๋‚ด๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๊ธฐ์—๋Š” ์–ด๋ ค์šฐ๋‹ˆ fakeController๋ฅผ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธ์‹œ์— url์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

test - application.properties

๋ฌผ๋ก  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๋ฅผ ์ถ”๊ฐ€ํ•œ ์ธ์ฆ

  • ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ๊ณต์œ 
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ ๊ณต์œ 
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ 
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ