Ios 在Swift中使用枚举组织XCUITest

Ios 在Swift中使用枚举组织XCUITest,ios,swift,testing,xcode-ui-testing,xcuitest,Ios,Swift,Testing,Xcode Ui Testing,Xcuitest,所以我在读一篇文章: 它建议按如下方式组织XCUItest: enum HomeScreen: String { case guestButton = "Hello" case registerButton = "Register" case loginButton = "Login" case welcomeText = "Welcome" case introText =

所以我在读一篇文章:

它建议按如下方式组织XCUItest:

enum HomeScreen: String {
    case guestButton = "Hello"
    case registerButton = "Register"
    case loginButton = "Login"
    case welcomeText = "Welcome"
    case introText = "Introduction to app"
    var element: XCUIElement {
        if buttonElements.contains(self) {
            return XCUIApplication().buttons[self.rawValue]
        }
        if textElements.contains(self) {
            return XCUIApplication().staticTexts[self.rawValue]
        }
        fatalError("Element not found")
    }
 
    private var buttonElements: [HomeScreen] {
        return [.guestButton, .registerButton, .loginButton]
    }
 
    private var textElements: [HomeScreen] {
        return [.welcomeText, .introText]
    }
}
但假设我是一个作为复选标记的元素,并且是特定组件的子元素。您可以将该图像添加到此枚举中吗

我想检查的是:

app.buttons["button_with_checkmark_1"].images["dynamic_image_checkmark"].exists
app.buttons["button_with_checkmark_2"].images["dynamic_image_checkmark"].exists
app.buttons["button_with_checkmark_3"].images["dynamic_image_checkmark"].exists

但是,如何使用上面建议的结构访问映像?

我继承了一个使用此体系结构的框架,并警告您不要使用它。枚举很好,但也有其局限性,传统的页面对象模型更灵活、更强大。如果你做的很好很简单,那么这很好也很简单,但是它的扩展性不好。我同意,这是大量的样板代码,没有什么效果,你最好使用一个更具可扩展性的架构(你已经遇到了一个无法解决的问题)。我建议你使用页面对象模型,或者剧本模式,如果你想做一些现代的事情的话。Swift:中的页面对象模型,Swift:中的剧本除了其他评论者所说的之外,请注意,
XCUIApplication
不是一个单独的应用程序,您可能需要重新考虑使用它,就像您发布的示例一样。