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