@@ -22,6 +22,29 @@ final class PartnershipRouterTests: XCTestCase {
22
22
provider = MoyaProvider < PartnershipRouter > ( )
23
23
}
24
24
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
+
25
48
/// 전체 제휴 목록 조회 API 테스트 (실제 서버 요청)
26
49
func testFetchAllPartnershipsResponse( ) {
27
50
let expectation = expectation ( description: " fetchAllPartnerships " )
@@ -33,19 +56,9 @@ final class PartnershipRouterTests: XCTestCase {
33
56
XCTAssertFalse ( response. data. isEmpty, " 응답 데이터가 비어있습니다. " )
34
57
35
58
do {
36
- // 응답 데이터를 DTO로 변환하여 검증
37
-
38
59
let partnershipsResponse = try JSONDecoder ( ) . decode ( BaseResponse< [ PartnershipResponse] > . self , from: response. data)
39
-
40
60
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 " )
49
62
} catch {
50
63
XCTFail ( " 디코딩 실패: \( error) " )
51
64
}
@@ -72,17 +85,8 @@ final class PartnershipRouterTests: XCTestCase {
72
85
73
86
do {
74
87
let detailResponse = try JSONDecoder ( ) . decode ( BaseResponse< PartnershipDetailResponse> . self , from: response. data)
75
-
76
- // DTO 필드 검증
77
88
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 " )
86
90
} catch {
87
91
XCTFail ( " 디코딩 실패: \( error) " )
88
92
}
@@ -98,7 +102,7 @@ final class PartnershipRouterTests: XCTestCase {
98
102
99
103
/// 제휴 찜 등록/취소 API 테스트 (실제 서버 요청)
100
104
func testTogglePartnershipFavoriteResponse( ) {
101
- let partnershipId = 456
105
+ let partnershipId = 2
102
106
let expectation = expectation ( description: " togglePartnershipFavorite " )
103
107
104
108
provider. request ( . togglePartnershipFavorite( partnershipId: partnershipId) ) { result in
0 commit comments