Проблемы при тестировании свойства 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()
        }
    }
}

0 ответов

Другие вопросы по тегам