feat: 新增用户信息获取功能及相关模型
- 在APIEndpoints.swift中新增getUserInfo端点以支持获取用户信息。 - 在APIModels.swift中实现获取用户信息请求和响应模型,处理用户信息的请求与解析。 - 在UserInfoManager中新增方法以从服务器获取用户信息,并在登录成功后自动获取用户信息。 - 在SettingFeature中新增用户信息刷新状态管理,支持用户信息的刷新操作。 - 在SettingView中集成用户信息刷新按钮,提升用户体验。 - 在SplashFeature中实现自动获取用户信息的逻辑,优化用户登录流程。 - 在yanaAPITests中添加用户信息相关的单元测试,确保功能的正确性。
This commit is contained in:
@@ -173,3 +173,68 @@ final class yanaAPITests: XCTestCase {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - User Info API Tests
|
||||
extension yanaAPITests {
|
||||
|
||||
func testGetUserInfoRequest() {
|
||||
// 测试获取用户信息请求创建
|
||||
let uid = "12345"
|
||||
let request = UserInfoHelper.createGetUserInfoRequest(uid: uid)
|
||||
|
||||
XCTAssertEqual(request.endpoint, "/user/get", "端点应该正确")
|
||||
XCTAssertEqual(request.method, .GET, "请求方法应该是GET")
|
||||
XCTAssertEqual(request.queryParameters?["uid"], uid, "UID参数应该正确")
|
||||
XCTAssertFalse(request.shouldShowLoading, "不应该显示loading")
|
||||
XCTAssertFalse(request.shouldShowError, "不应该显示错误")
|
||||
}
|
||||
|
||||
func testGetUserInfoResponse() {
|
||||
// 测试用户信息响应解析
|
||||
let responseData: [String: Any] = [
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"timestamp": 1640995200000,
|
||||
"data": [
|
||||
"user_id": "12345",
|
||||
"username": "testuser",
|
||||
"nickname": "测试用户",
|
||||
"avatar": "https://example.com/avatar.jpg",
|
||||
"email": "test@example.com",
|
||||
"phone": "13800138000",
|
||||
"status": "active",
|
||||
"create_time": "2024-01-01 00:00:00",
|
||||
"update_time": "2024-01-01 00:00:00"
|
||||
]
|
||||
]
|
||||
|
||||
do {
|
||||
let jsonData = try JSONSerialization.data(withJSONObject: responseData)
|
||||
let response = try JSONDecoder().decode(GetUserInfoResponse.self, from: jsonData)
|
||||
|
||||
XCTAssertTrue(response.isSuccess, "响应应该成功")
|
||||
XCTAssertEqual(response.code, 200, "状态码应该正确")
|
||||
XCTAssertNotNil(response.data, "用户信息数据应该存在")
|
||||
|
||||
if let userInfo = response.data {
|
||||
XCTAssertEqual(userInfo.userId, "12345", "用户ID应该正确")
|
||||
XCTAssertEqual(userInfo.username, "testuser", "用户名应该正确")
|
||||
XCTAssertEqual(userInfo.nickname, "测试用户", "昵称应该正确")
|
||||
}
|
||||
|
||||
debugInfoSync("✅ 用户信息响应解析测试通过")
|
||||
|
||||
} catch {
|
||||
XCTFail("解析用户信息响应失败: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
func testUserInfoHelper() {
|
||||
// 测试UserInfoHelper
|
||||
let uid = "67890"
|
||||
UserInfoHelper.debugGetUserInfoRequest(uid: uid)
|
||||
|
||||
let request = UserInfoHelper.createGetUserInfoRequest(uid: uid)
|
||||
XCTAssertEqual(request.queryParameters?["uid"], uid, "Helper创建的请求应该正确")
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user