최근 ORM 없이 순수 JDBC + Spring, 그리고 JDBC template을 통한 SQL mapper + Spring 조합의 웹앱들을 만들어보았다. Presentation, Service, Persistence 세 레이어를 ATDD 스타일로 구현하며 단위 테스트와 통합 테스트를 다양하게 작성해보았고, 괜찮았던 방법과 고민했던 포인트들을 적어보려고 한다. 각 레이어에 대한 단위 테스트는 Mockito를 통한 Slice 테스트로 Out - In 방식의 TDD에 용이한 Mockito Persistence -> Service -> Presentation 순서로의 In-Out 방식의 개발을 진행하면 상위 레이어를 구현할 때 하위 레이어가 이미 모두 구현되있으므로 하위 레이어를 포함한 단위 테스트를 구현할 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cNv9st/btscYOgdcU1/cPV7o6rXDGAshOoKLgvtKK/img.png)
Random Port의 SpringBoot 테스트를 진행할 때 Transactional이 적용되지 않는 문제를 직면하여 이유를 간단히 알아보았습니다. 잘못된 내용이 있다면 지적 부탁드립니다. @SpringBootTest의 Web Environment SpringBootTest의 Web Environment 설정은 네 가지가 있다. 기본값인 MOCK은 mocking 된 서블릿(WebApplicationContext)을 로드하며 NONE의 경우는 서블릿 환경을 아예 제공하지 않는다. 반면 RANDOM_PORT 혹은 DEFINED_PORT 옵션을 사용하면 각각 임의의, 혹은 지정된 포트로의 실제 서블릿 환경(EmbeddedWebApplicationContext)을 로드한다. 이로 인해 RANDOM_PORT 혹..
- Total
- Today
- Yesterday
- Payload 암호화
- GitHub Discussion 템플릿
- 자바
- Spring Boot Monitoring
- java switch case
- springboottest
- JPA
- Fromtail
- invokedynamic
- GitHub Discussion Template
- 스프링
- multiplebagsfetchexception
- 함수형 인터페이스
- MySQL 이벤트 스케줄
- MySQL
- RandomPort
- JPA JSON
- Spring
- 우테코
- stubbing
- Java
- 우테코 프리코스
- 의존성 주입
- 생성자 주입
- logback-spring.xml
- Spring 테스트
- 우테코 5기
- Jenkins 예약 배포
- 람다식
- GitHub Discussion
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |