TDD
Last updated
Last updated
๊ฐ์๋ฅผ ์์ฝํ ๋ด์ฉ์ ๋๋ค.
Java POJO Test
(1) ํ์ํ ์๋น์ค ํธ์ถ
ํ์ํ ๋์์ ํ์ํ ๊ธฐ๋ฅ๋ค๋ง์ผ๋ก ๊ตฌ์ฑ ๊ฐ๋ฅ
(2) ์๋น์ค ํธ์ถ์ ํ์ํ Request ํด๋์ค ์์ฑ
Request ํด๋์ค๋ record
ํด๋์ค๋ก ์ฌ์ฉ ๊ฐ๋ฅ
Assert
๋ฅผ ํ์ฉํด์ ์์ฑ์ ํ๋ผ๋ฏธํฐ ๊ฒ์ฆ
(3) ์๋น์ค ํด๋์ค ์์ฑ
๋๋ฉ์ธ ํด๋์ค ์์ฑ
(4) ์ด๋ํฐ ์์ฑ
(5) ๋ ํ์งํ ๋ฆฌ ์์ฑ
ํ ์คํธ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ฉ๋ชจ๋ฆฌ(Map)๋ก ๊ด๋ฆฌ
Then -> Given -> When ์์๋ก ์ ์ฑํด ๋ณด๊ธฐ
.
Move Inner class for test to Upper level
ํ ์คํธ ์ฝ๋์ ์์ฑ๋ inner class ๋ค์ main class ๋ก ์ด๋
F6
๋จ์ถํค ํ์ฉ
์์ ์๋ฐ๋ก ๊ตฌํ๋ ์๋น์ค๋ฅผ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๊ณ ์คํ๋ง ๋ถํธ ํ ์คํธ๋ก ๋์ํ๋๋ก ์ ํ
service, adapter, repository ํด๋์ค์ @Component ์ ์ธ
๊ธฐ์กด ํ ์คํธ์ @SpringBootTest ์ ์ธ ๋ฐ ์๋น์ค๋ @Autowired ๋ก ์ฃผ์
API ํ ์คํธ๋ฅผ ์ํด io.rest-assured:rest-assured ์ฌ์ฉํ๊ธฐ
rest-assured ๋ ๊ฒฉ๋ฆฌ๊ฐ ์ ์ ๋๋ ๋ฌธ์ ๊ฐ ์กด์ฌ
๋ฐ์ดํฐ๊ฐ ์บ์ฑ์ด ๋์ด table sequence ๊ฐ ๊ผฌ์ฌ ๋ค๋ฅธ ํ ์คํธ๊ฐ ๊นจ์ง ์ ์์(ex. table sequence)
๊ธฐ์กด in-memory ํํ์ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ jpa ๋ก ์ ์ฉ
์ํ ๋ฑ๋ก ๊ตฌํ์ผ๋ก ์ด๋ฏธ ๊ธฐ๋ฐ์ด ์กํ ์์ผ๋ฏ๋ก POJO ๋ถํฐ ํ ์คํธ๋ฅผ ์์ํ์ง ์๊ณ @SpringBootTest ๋ก ์์
์ํ ๋ฑ๋ก๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์งํ.
(1) ํ์ํ ์๋น์ค ํธ์ถ
(2) ์๋น์ค ํธ์ถ์ ํ์ํ Request record ํด๋์ค ์์ฑ
Assert ๋ฅผ ํ์ฉํด์ ์์ฑ์ ํ๋ผ๋ฏธํฐ ๊ฒ์ฆ
(3) ์๋น์ค์ ์ํ ์์ ๋ฉ์๋ ๊ตฌํ
(4) ์ํ ์์ ์ ์ํ ๋๋ฉ์ธ ๋ฉ์๋๋ ํ ์คํธ ํ์
Product.update
(4) StubClass ๋๋ Mockito ๋ฅผ ํ์ฉํ์ฌ ํ ์คํธ
POJO
์คํ๋ง๋ถํธ ํ ์คํธ๋ก ์ ํํ๊ธฐ
API ํ ์คํธ๋ก ์ ํํ๊ธฐ
JPA ์ ์ฉ
POJO
์คํ๋ง๋ถํธ ํ ์คํธ๋ก ์ ํํ๊ธฐ
API ํ ์คํธ๋ก ์ ํํ๊ธฐ
JPA ์ ์ฉ
final
keyword
record
class
Assert
in constructor
rest-assured
api test
var
type
HttpStatus
200 OK
201 CREATE
๊ฒฉ๋ฆฌ ๋ฐฉ๋ฒ์ ์ฐธ๊ณ