Тестирование пользовательского интерфейса SwiftUI и сопоставление потомков

#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.

Что происходит?