Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- nGrinder
- docker ps -a
- private subnet ec2 ๋ก์ปฌ ์ ์
- s3 ์ด๋ฏธ์ง ์ ์ฅ
- Kafka
- prod docker-compose
- ํ์ดํผ๋ฐ์ด์
- redis ํ ์คํธ์ฝ๋
- docker compose
- redis ์กฐํ
- ์๋ฒ ํฐ์ง๋ ๋์ปค ์ฌ์คํ
- jvm ๋ฐ๋ฐ๋ฅ๊น์ง ํํค์น๊ธฐ
- docker
- ๋ค์ค ์ปจํ ์ด๋
- aws ์ฟ ํฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- aws saa ํฉ๊ฒฉ
- s3 log ์ ์ฅ
- AWS Certified Solutions Architect - Associate
- Entity
- JPA
- ํ๋ก๊ทธ๋๋จธ์ค ํฉ์นํ์์๊ธ
- ์คํํ๋ ๋ฏธ์ค
- ์๋ฐ
- ์ ํจ์ค ๋น๋ ์ค๋ฅ
- Codedeploy ์ค๋ฅ
- ํ๋ก๊ทธ๋๋จธ์ค ์ปฌ๋ฌ๋ง๋ถ
- ์ ํจ์ค ์ค์ผ์ค๋ฌ
- s3 ์ด๋ฏธ์ง ๋ค์ด๋ก๋
- docker-compose kafka
Archives
- Today
- Total
๐๐ข๐๐ โ๐๐๐ ๐๐๐ก๐๐ ๐๐๐๐โง
[Spring] Spock ๋ณธ๋ฌธ
๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ถ๐ป๐ด๐ป/๐๐ฉ๐ซ๐ข๐ง๐
[Spring] Spock
๐คRyusun๐ค 2023. 5. 15. 02:39ํ ์คํธ ์ฝ๋์ ์ค์์ฑ
- ํ
์คํธ ์ฝ๋๋ ๊ธฐ๋ฅ์ ๋ํ ๋ถํ์ค์ฑ์ ๊ฐ์์ํฌ ์ ์์ผ๋ฉฐ, ๊ฐ๋ฐ์๊ฐ ๋ง๋ ๊ธฐ๋ฅ์ ์์ ํ๊ฒ ๋ณดํธํด์ค๋ค.
- ex) A๋ผ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐ๋ก ๊ฐ๋ฐํ์ฌ ์คํํ๋๋ ๊ธฐ์กด์ ์ ์ฌ์ฉํ๋ B๋ผ๋ ๊ธฐ๋ฅ์ด ๋ฌธ์ ๋ฐ์
- ํ
์คํธ ์ฝ๋ ์์ฑ์ ๊ฐ๋ฐ ๋จ๊ณ ์ด๊ธฐ์ ๋ฌธ์ ๋ฐ๊ฒฌ์ ๋์์ ์ฃผ๊ธฐ ๋๋ฌธ์, ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถ!
- ex) ์ถฉ๋ถํ ํ ์คํธ ์ฝ๋ ์์ด ๋น ๋ฅด๊ฒ ๋ฐฐํฌ -> ๋ฐฐํฌ ํ ๋ฌธ์ ๋ฐ์ -> ์์ธ ํ์ , ๋ค์ ํ ์คํธ ๋ฐ ์ฝ๋ ์์ -> ์ผ๊ทผ..
Spock ํ๋ ์์ํฌ
- BDD(Behaviour-Driven Development) ํ๋ ์์ํฌ
- ๊ธฐ๋ํ๋ ๋์๊ณผ ํ ์คํธ์ ์๋๋ฅผ ๋ ๋ช ํํ๊ฒ ๋๋ฌ๋ด์ฃผ๊ณ ์ฐ๋งํ ์ฝ๋๋ ๋ค๋ก ์จ๊ฒจ์ฃผ๋ ์ฅ์ ์ด ์๋ค.
- Groovy ์ธ์ด๋ฅผ ์ด์ฉํ์ฌ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ ํ๋ ์์ํฌ์ด๋ฉฐ JUnit ๊ณผ ๋น๊ตํ์ฌ ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ์์ฑ ๊ฐ๋ฅ
- Groovy ์ธ์ด๋ ๋์ ํ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก JVM ์์์ ๋์ํ๋ฉฐ Java๋ฌธ๋ฒ๊ณผ ์ ์ฌ
- ํ ์คํธ ๋ฉ์๋ ์ด๋ฆ์ ๋ฌธ์์ด๋ก ์์ฑํ ์ ์์ผ๋ฉฐ given, when, then ์ฝ๋ ๋ธ๋ก์ ๋ช ํํ ๊ตฌ๋ถ
- Junit์ ๊ฒฝ์ฐ ์ฃผ์์ผ๋ก ๋ธ๋ก์ ๊ตฌ๋ถํ์๊ณ , ๋ฉ์๋ ์ด๋ฆ ๋ํ ์ ์ฝ์ฌํญ์ด ๋ง์ด ์กด์ฌ
Spock ํ๋ ์์ํฌ ํ ์คํธ ์ฝ๋ ์์ฑ ์์
- ํ ์คํธ ํด๋์ค๋ Groovy ํด๋์ค๋ก ์์ฑํ๊ณ , Specification ํด๋์ค๋ฅผ ์์ ๋ฐ๋๋ค.
- feature(ํ ์คํธ ๋ฉ์๋๋) def๋ฅผ ์ด์ฉํ์ฌ ํจ์๋ก ์ ์ธํ๋ฉฐ, ํ๋ ์ด์ ๋ธ๋ก์ด ์กด์ฌํด์ผ ํจ
- given ๋ธ๋ก : ํ ์คํธ์ ํ์ํ ๊ฐ์ ์ค๋นํ๋ค.
- when ๋ธ๋ก : ํ ์คํธํ ์ฝ๋๋ฅผ ์คํํ๋ค.
- then ๋ธ๋ก : when๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉฐ ์์ธ ๋ฐ ๊ฒฐ๊ณผ ๊ฐ์ ๊ฒ์ฆํ๋ค.
- expect ๋ธ๋ก : then๊ณผ ๊ฐ์ผ๋ฉฐ when์ ํ์๋ก ํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ ํ ์คํธ ๋ฐ where์ ๊ฐ์ด ์ฌ์ฉ๋๋ค.
- where ๋ธ๋ก : ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅด๊ณ ๋ก์ง์ด ๋์ผํ ๊ฒฝ์ฐ ๋์ผํ ํ ์คํธ์ ๋ํ ์ค๋ณต ์ฝ๋ ์ ๊ฑฐ ๊ฐ๋ฅ
Spock ํ๋ ์์ํฌ ์ฃผ์ ๊ธฐ๋ฅ
- JUnit์์ ์ ๊ณตํ๋ ์ฃผ์ ์์๋ค์ ๋ชจ๋ Spock์์ ์ ๊ณตํ๊ณ ์๋ค.
Spock ํ๋ ์์ํฌ ์ค์
1. Spock ์ฌ์ฉํ๊ธฐ ์ํด IDE Spock ํ๋ฌ๊ทธ์ธ ๋ฐ ์์กด์ฑ ์ถ๊ฐ
2. groovy ๋๋ ํ ๋ฆฌ ์์ฑ ๋ฐ spock ํ ์คํธ ์ฝ๋ ์์ฑ
Spock ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
์๋๋ ๊ฐ๋จํ ์์ ์ฝ๋๋ก ์์ฑํ Spock ํ ์คํธ ์ฝ๋
- Specification: extends ํ๋ฉด Spock Test ํด๋์ค๊ฐ ๋ฉ๋๋ค.
- def : groovy์ ๋์ ํ์
์ ์ธ(๋ฉ์๋, ๋ณ์์ ๋ชจ๋ ์ฌ์ฉํ ์ ์์. JS์ var ๊ฐ์ ์กด์ฌ)
- def ๋์ ์ Java์ฒ๋ผ ์ค์ ํด๋์ค ํ์ ์ ๋ช ์ํ ์๋ ์๋ค.
- setup : ๊ฐ ํ ์คํธ ์ผ์ด์ค ์คํ ์ ๋ง๋ค ์คํ
- given, when, then: Spock feature ๋ฉ์๋
Mock ํ ์คํธ
Spock์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ค ๋ ํ๋๋ Mock ์ด๋ค.
def mockService = Mock(CustomerService) CustomerService mockService = Mock()
Spock์์ Mock ๊ฐ์ฒด์ ๋ฐํ๊ฐ์ >> ๋ก ์ง์ ํ๋ค.
์๋ฅผ ๋ค์ด ์ผ๋ฐ์ ์ธ ๊ฐ์ ๋ฐํ์ Mocking ํ๋ค๋ฉด ์๋์ ๊ฐ์ด ํํ ๊ฐ๋ฅํ๋ค.
customerRepository.findName(1) >> "jojoldu"
๋ง์ฝ Exception์ ๋ฐํํด์ผํ๋ค๋ฉด
customerService.validate() >> { throw new ResourceNotFoundException}
์ ๊ฐ์ด ํํํ ์ ์๋ค.
์์ ์ฝ๋
์ถ์ฒ
'๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ถ๐ป๐ด๐ป > ๐๐ฉ๐ซ๐ข๐ง๐ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] MockWebServer (0) | 2023.05.17 |
---|---|
[Spring] Spring Retry (1) | 2023.05.16 |
[Spring] Docker (0) | 2023.05.14 |
[Spring] Jpa๋ฅผ ์ด์ฉํ ์กฐํ์ ์ฆ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ (0) | 2023.01.27 |
[Spring] Entity,์์์ฑ ์ปจํ ์คํธ (1) | 2022.12.31 |