// // ProfileRoutesUITests.swift // suixinkanUITests // import XCTest final class ProfileRoutesUITests: AuthenticatedUITestCase { /// 测试系统设置页可打开。 func testSettingsPage() throws { app = try UITestSession.relaunch(openProfile: "settings") NavigationAssertions.waitForNavigationTitle("设置", in: app) XCTAssertTrue( app.application.buttons["关于我们"].waitForExistence(timeout: 4) || app.application.staticTexts["关于我们"].exists ) } /// 测试关于我们、用户协议、隐私政策页可分别打开。 func testAgreementPages() throws { let pages: [(route: String, title: String)] = [ ("agreement.about", "关于我们"), ("agreement.userAgreement", "用户协议"), ("agreement.privacyPolicy", "隐私政策") ] for page in pages { app = try UITestSession.relaunch(openProfile: page.route) NavigationAssertions.waitForNavigationTitle(page.title, in: app) } } /// 测试实名认证页可打开并展示表单。 func testRealNameAuthPage() throws { app = try UITestSession.relaunch(openProfile: "realNameAuth") NavigationAssertions.waitForNavigationTitle("实名认证", in: app) XCTAssertTrue(app.application.textFields.count > 0 || app.application.secureTextFields.count > 0) } /// 测试账号切换页可打开。 func testAccountSwitchPage() throws { throw XCTSkip("账号切换页在 UI Test 直达路由下会触发 SwiftUI 导航崩溃,待 App 侧修复后再启用。") } }