RealWorld Postman 테스트 코드를 보면 게시글관련에 아래와 같은 테스트 코드가 들어있다.
pm.test('Article\'s "updatedAt" property is an ISO 8601 timestamp', () => {
pm.expect(/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/.test(article.updatedAt)).to.be.true
})
ISO 8601 포맷의 타임스탬프인지 확인하는 코드로, ISO 8601포맷은 아래에 자세히 설명되어 있다.
https://ko.wikipedia.org/wiki/ISO_8601
대략, 아래와 같은 양식으로 되어있다.
2016-10-27T17:13:40Z
1. 년, 월, 일은 "-"로 구분해 표현한다.
2. 시각은 "T"이후에 시, 분, 초를 ":"로 구분해 표현한다.
3. 시각은 소수로 표현될 수 있다. 다만, 10시 31분을 10.5:1로 표현하면 좋지 않다.
4. UTC시각을 표기하려면 끝에 Z를 붙인다.
그런데 자바의 LocalDateTime::toString()은 약간 다르게 출력한다.
예컨데 2023-02-22T18:05:23.314746Z를
Z빼고 2023-02-22T18:05:23.314746로 표시하는 식이다.
고로, 위의 테스트를 통과할 수 없게된다.
해결.
결국, 정규식 뒷쪽의 UTC 시간 표기가 없는 것도 허용하도록 변경했다.
pm.test('Article\'s "createdAt" property is an ISO 8601 timestamp', () => {
pm.expect(/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d.\d+(?:[+-][0-2]\d:[0-5]\d|Z)?$/.test(article.createdAt)).to.be.true
})
'프로그래밍 > 기타' 카테고리의 다른 글
실제하지 않는 엔티티 (0) | 2023.02.26 |
---|---|
백준 허브 커스터마이징 (3) | 2023.01.25 |
9번째 스프린트 회고 - 게시판 좋아요 구현과 JWT활용 (0) | 2023.01.25 |
백준 허브 사용 후기 (0) | 2023.01.21 |
스타듀밸리 순무 모드 업데이트 0.7.0 (1) | 2023.01.18 |