일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- db
- 데이터 타입
- 동시성
- MySQL
- 자바
- 동시성 문제
- text
- gc
- Locking Read
- Lock
- jpa
- 스프링
- 백엔드
- Synchronized
- MVCC
- Varchar
- CAS
- 가비지 컬렉터
- reflection
- Atomic Type
- iterator
- Di
- iterable
- java
- foreach
- 가비지 컬렉션
Archives
- Today
- Total
목록2024/06 (1)
과정을 즐기자
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cvxBr2/btsIicDxZGl/TwR7IBFTUItLbx9PiJPLW0/img.png)
이번 글에서는 시간, 랜덤 값과 같은 제어할 수 없는 영역을 테스트하는 방법에 대해 작성해보겠습니다.예시로 날짜에 따라 할인을 적용하는 간단한 로직을 만들어보았습니다. Bad - 의존성이 내부에 숨겨져 있음 위 코드는 2024년 6월 30일 이전 날짜인 경우에만 2000원의 할인이 적용됩니다.잘 작성한 것 같아보이지만 문제점이 보이시나요? Bad - 테스트하기 어려움 할인 날짜보다 이전/이후 날짜에 따라 할인 적용 여부가 결정되는데 시간의 흐름에 따라 테스트 코드가 달라질 수 있습니다.제어할 수 없는 영역인 시간에 대한 정보가 메소드 내부에 숨겨져 있기 때문입니다.즉, 해당 코드는 테스트 코드를 작성하기가 어렵습니다. 📕 제어할 수 없는 영역은 밖으로 밀어내자이제 이 메소드를 리팩토링하여 테스트할 수 ..
테스트 코드
2024. 6. 30. 16:22