新增完整 UI Test 回归套件,并完善启动隔离逻辑。
按模块拆分 XCUITest 用例与 Support 基础设施,UI Test 运行时跳过推送与排队 WebSocket,并将 Podfile 最低版本对齐 iOS 16。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
34
suixinkanUITests/Support/BackNavigator.swift
Normal file
34
suixinkanUITests/Support/BackNavigator.swift
Normal file
@ -0,0 +1,34 @@
|
||||
//
|
||||
// BackNavigator.swift
|
||||
// suixinkanUITests
|
||||
//
|
||||
// Created by Codex on 2026/6/26.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
/// 导航返回封装。
|
||||
enum BackNavigator {
|
||||
/// 通过导航栏返回按钮回到上一页。
|
||||
static func goBack(app: SuixinkanApp, file: StaticString = #filePath, line: UInt = #line) {
|
||||
let navigationBar = app.application.navigationBars.element(boundBy: 0)
|
||||
guard navigationBar.exists else {
|
||||
XCTFail("当前页面没有可返回的导航栏。", file: file, line: line)
|
||||
return
|
||||
}
|
||||
|
||||
let backButton = navigationBar.buttons.element(boundBy: 0)
|
||||
XCTAssertTrue(backButton.waitForExistence(timeout: 4), "未找到返回按钮。", file: file, line: line)
|
||||
backButton.tap()
|
||||
app.waitForGlobalLoadingToDisappear()
|
||||
}
|
||||
|
||||
/// 关闭自定义顶栏页面(如全部功能页)。
|
||||
static func dismissCustomTopBarIfNeeded(app: SuixinkanApp) {
|
||||
let backCandidates = app.application.buttons.matching(NSPredicate(format: "label CONTAINS 'chevron.left'"))
|
||||
if backCandidates.count > 0 {
|
||||
backCandidates.element(boundBy: 0).tap()
|
||||
app.waitForGlobalLoadingToDisappear()
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user