Skip to content

Commit 60026ab

Browse files
committed
[#234] JSONPrettyPrinter를 테스트 코드에 일괄적용
1 parent 5b95f00 commit 60026ab

File tree

2 files changed

+35
-23
lines changed

2 files changed

+35
-23
lines changed

EATSSU/App/Tests/UnitTests/PartnershipRouterTests.swift

+26-22
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,29 @@ final class PartnershipRouterTests: XCTestCase {
2222
provider = MoyaProvider<PartnershipRouter>()
2323
}
2424

25+
private func handleResponse(_ response: Response, for endpoint: String) {
26+
print("\n🔍 [\(endpoint)] Response Details:")
27+
print("📊 Status Code: \(response.statusCode)")
28+
29+
// 요청 헤더 정보 출력
30+
if let request = response.request {
31+
print("\n📡 Request Headers:")
32+
request.allHTTPHeaderFields?.forEach { key, value in
33+
print(" \(key): \(value)")
34+
}
35+
}
36+
37+
// 응답 데이터 파싱 및 출력
38+
if let prettyJSON = JSONPrettyPrinter.prettyPrintedJSONString(from: response.data) {
39+
print("\n📦 Response Data Structure:")
40+
print(prettyJSON)
41+
} else {
42+
print("⚠️ JSON 파싱 실패")
43+
}
44+
45+
print("\n" + String(repeating: "-", count: 50) + "\n")
46+
}
47+
2548
/// 전체 제휴 목록 조회 API 테스트 (실제 서버 요청)
2649
func testFetchAllPartnershipsResponse() {
2750
let expectation = expectation(description: "fetchAllPartnerships")
@@ -33,19 +56,9 @@ final class PartnershipRouterTests: XCTestCase {
3356
XCTAssertFalse(response.data.isEmpty, "응답 데이터가 비어있습니다.")
3457

3558
do {
36-
// 응답 데이터를 DTO로 변환하여 검증
37-
3859
let partnershipsResponse = try JSONDecoder().decode(BaseResponse<[PartnershipResponse]>.self, from: response.data)
39-
4060
XCTAssertNotNil(partnershipsResponse, "디코딩된 데이터가 nil입니다.")
41-
42-
// JSON을 보기 좋게 출력
43-
if let prettyJSON = JSONPrettyPrinter.prettyPrintedJSONString(from: response.data) {
44-
print("📌 Pretty JSON Response:\n\(prettyJSON)")
45-
} else {
46-
print("⚠️ JSON 포맷 변환 실패")
47-
}
48-
61+
self.handleResponse(response, for: "FetchAllPartnerships")
4962
} catch {
5063
XCTFail("디코딩 실패: \(error)")
5164
}
@@ -72,17 +85,8 @@ final class PartnershipRouterTests: XCTestCase {
7285

7386
do {
7487
let detailResponse = try JSONDecoder().decode(BaseResponse<PartnershipDetailResponse>.self, from: response.data)
75-
76-
// DTO 필드 검증
7788
XCTAssertNotNil(detailResponse, "디코딩된 데이터가 nil입니다.")
78-
79-
// JSONPrettyPrinter를 활용한 디버깅 출력
80-
if let prettyJSON = JSONPrettyPrinter.prettyPrintedJSONString(from: response.data) {
81-
print("📌 Pretty JSON Response:\n\(prettyJSON)")
82-
} else {
83-
print("⚠️ JSON 포맷 변환 실패")
84-
}
85-
89+
self.handleResponse(response, for: "FetchPartnershipDetail")
8690
} catch {
8791
XCTFail("디코딩 실패: \(error)")
8892
}
@@ -98,7 +102,7 @@ final class PartnershipRouterTests: XCTestCase {
98102

99103
/// 제휴 찜 등록/취소 API 테스트 (실제 서버 요청)
100104
func testTogglePartnershipFavoriteResponse() {
101-
let partnershipId = 456
105+
let partnershipId = 2
102106
let expectation = expectation(description: "togglePartnershipFavorite")
103107

104108
provider.request(.togglePartnershipFavorite(partnershipId: partnershipId)) { result in

EATSSU/App/Tests/UnitTests/UserDepartmentRouterTests.swift

+9-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,15 @@ final class UserDepartmentRouterTests: XCTestCase {
111111
onSuccess: { response in
112112
XCTAssertNotNil(response, "응답이 nil입니다.")
113113
XCTAssertFalse(response.message.isEmpty, "응답 메시지가 비어있습니다.")
114-
print("📌 Success Message: \(response.message)")
114+
115+
// 응답 데이터를 JSON 형태로 출력
116+
if let jsonData = try? JSONEncoder().encode(response),
117+
let prettyJSON = JSONPrettyPrinter.prettyPrintedJSONString(from: jsonData)
118+
{
119+
print("\n📦 Response Data Structure:")
120+
print(prettyJSON)
121+
}
122+
115123
expectation.fulfill()
116124
},
117125
onFailure: { error in

0 commit comments

Comments
 (0)