面试题答案
一键面试- 设置测试环境:
- 导入
XCTest
和SwiftUI
相关库,创建一个继承自XCTestCase
的测试类。
import XCTest import SwiftUI import UIKit class MyAppUITests: XCTestCase { override func setUpWithError() throws { continueAfterFailure = false let app = XCUIApplication() app.launch() } }
- 导入
- 模拟点击列表项进入详情页:
- 使用
XCUIApplication
来定位首页的列表项。假设列表项是一个Button
,可以通过其标识符或其他属性来定位。
func testUpdateListAfterDetailEdit() { let app = XCUIApplication() let listItem = app.buttons["ListItemIdentifier"] XCTAssertTrue(listItem.exists) listItem.tap() }
- 使用
- 在详情页修改数据并保存:
- 进入详情页后,定位数据修改的输入框和保存按钮。假设输入框是
TextField
,保存按钮是Button
。
let detailTextField = app.textFields["DetailTextFieldIdentifier"] XCTAssertTrue(detailTextField.exists) detailTextField.tap() detailTextField.typeText("New Data") let saveButton = app.buttons["SaveButtonIdentifier"] XCTAssertTrue(saveButton.exists) saveButton.tap()
- 进入详情页后,定位数据修改的输入框和保存按钮。假设输入框是
- 验证首页列表数据更新:
- 返回首页后,再次定位列表项,验证其显示的数据是否是修改后的数据。
let updatedListItem = app.buttons["ListItemIdentifier"] XCTAssertTrue(updatedListItem.exists) XCTAssertEqual(updatedListItem.label, "Expected Updated Data")
在实际应用中,可能需要根据具体的UI结构和数据绑定方式调整定位元素的方法,比如使用accessibilityIdentifier
、label
等属性来准确找到对应的UI元素。同时,要确保在测试环境中正确设置了数据存储和更新逻辑,以便测试能够准确验证数据更新的正确性。