SwiftUI:断言 sheet 可见

SwiftUI: Assert that sheet is visible

我有一个 sheet 在某个时候可见的视图。

var body: some View {
    VStack {
        Text("Test")
        Text("Test")
    }.sheet(isPresented: $isPresented, content: {
        MySheet(isPresented: $isPresented)
    })
}

sheet 看起来像这样:

var body: some View {
    GeometryReader { metrics in
        VStack (spacing:0) {
            ZStack {
                Color(UIColor.lightGray)
                Text("header")
            }.frame(width: metrics.size.width, height: metrics.size.height * 0.15)
            ZStack {
                Color(UIColor.darkGray)
                Text("text")
            }.frame(width: metrics.size.width, height: metrics.size.height * 0.85)
        }
    }
}

我试图测试 sheet 是否可见

XCTAssertTrue(app.textFields["header"].exists)

但这不起作用。 如何测试 sheet 是否可见?

对于 Text 您需要使用 staticTexts 容器(使用 Xcode 12.1 / iOS 14.1 测试)。 当然假设您的测试正确等待 sheet 打开。

XCTAssertTrue(app.staticTexts["header"].exists)