Проблемы при тестировании свойства SwiftUI @State Изменение в XCTest
описание проблемы
Я столкнулся с проблемой при попытке протестировать представление SwiftUI с помощью действия переключения с помощью XCTest. Тест провален, особенно в последнемXCTAssertTrue
заявление, и, похоже, это связано с асинхронным характером обновлений SwiftUI.
Есть ли способ заставить тест работать?
Фрагменты кода
Вот упрощенная версия моего кода:
// XCTest Code
final class ToggleTests: XCTestCase {
func testToggleAction() {
// Given
let view = ToggleView()
XCTAssertFalse(view.toggle)
// When
view.handleToggleAction()
// Then
XCTAssertTrue(view.toggle)
}
}
// SwiftUI View
struct ToggleView {
@State private(set) var toggle: Bool = false
func handleToggleAction() {
self.toggle = true
}
}
extension ToggleView: View {
var body: some View {
Button("Toggle") {
self.handleToggleAction()
}
}
}