test(address): 주소 검색 계약을 검증한다

This commit is contained in:
Yu Sung
2026-10-08 12:32:59 +09:00
parent b0336902e6
commit 984eea6835
2 changed files with 99 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
import Foundation
@main
enum KakaoPostcodeResultCheck {
static func main() {
let result = KakaoPostcodeResult(payload: [
"zonecode": "01234", "address": "서울 지번 주소", "roadAddress": "다른 도로명 주소"
])
precondition(result?.zonecode == "01234", "preserve leading zero")
precondition(result?.address == "서울 지번 주소", "use exact address, not roadAddress")
let exact = KakaoPostcodeResult(payload: ["zonecode": " 01234 ", "address": " 주소 "])
precondition(exact?.zonecode == " 01234 " && exact?.address == " 주소 ", "do not rewrite values")
let invalid: [Any] = [
"not a dictionary", [:], ["address": "주소"], ["zonecode": "01234"],
["zonecode": 1234, "address": "주소"], ["zonecode": "01234", "address": 1],
["zonecode": "", "address": "주소"], ["zonecode": " \n", "address": "주소"],
["zonecode": "01234", "address": ""], ["zonecode": "01234", "address": "\t\n"],
["zonecode": NSNull(), "address": "주소"], ["zonecode": "01234", "address": NSNull()]
]
for payload in invalid {
precondition(KakaoPostcodeResult(payload: payload) == nil, "reject malformed result")
}
print("PASS KakaoPostcodeResult: 15 assertions")
}
}