如何从UI测试用例类访问SwiftUI视图的属性?

问题描述 投票:0回答:1

我正在编写UI测试,我需要访问视图的@State属性,只要该视图内的按钮即可。

struct CircleImage: View {

    @State var imageName: String = ""

    var body: some View {
        // ...
        Button(action: {}) {}
        .accessibility(identifier: "myButton")
    }
}

照原样,我很容易获得带有let myButton = app.buttons["myButton"]的按钮。但是出于测试目的,我还需要访问imageName属性。我尝试在ContentView中添加CircleImage().accessibility(identifier: "circleImageView"),但是它覆盖了CircleImage视图(包括按钮)中的所有可访问性(标识符:)。

我正在编写UI测试,我需要访问视图的@State属性,只要该视图内有一个按钮即可。 struct CircleImage:View {@State var imageName:String =“” var body:some View ...

swift swiftui xcode-ui-testing
1个回答
0
投票

UI测试不测试内部状态。他们仅测试UI可见的行为。要针对此类型编写UI测试,imageName应该会导致某些行为,然后测试该行为是否可见。在这种情况下,您可以使imageName转换为可访问性标签,这将允许VoiceOver读取它(顺便说一句,也允许UI测试访问它)。

© www.soinside.com 2019 - 2024. All rights reserved.