#ios #swiftui
Вопрос:
Я пытаюсь написать тест пользовательского интерфейса SwiftUI, чтобы убедиться, что, когда я добавляю элемент в список, он будет добавлен как один элемент внутри HStack, в одну строку. Вот мой код представления содержимого.
List { ForEach(allTasks) { task in HStack { Text(task.title ?? "") Spacer() Text(task.priority ?? "") } .accessibilityAddTraits(.isButton) .accessibilityIdentifier("rowTask") }.onDelete { indexSet in indexSet.forEach { index in let task = allTasks[index] viewContext.delete(task) do { try viewContext.save() } catch { print(error) } } } } .accessibilityIdentifier("taskList")
А вот мой тест пользовательского интерфейса SwiftUI.
func test_should_be_able_to_save_successfully() { let app = XCUIApplication() continueAfterFailure = false app.launch() let titleTextField = app.textFields["titleTextField"] titleTextField.tap() titleTextField.typeText("Mow the lawn") let saveTaskButton = app.buttons["saveTaskButton"] saveTaskButton.tap() let taskList = app.tables["taskList"] XCTAssertEqual(1, taskList.descendants(matching: .button).matching(identifier: "rowTask").count) }
По какой-то причине, даже если я добавляю одну задачу, она всегда оказывается taskList.descendants(matching: .button).matching(identifier: "rowTask").count
2, а не 1.
Что происходит?