Page Object Model Pattern in Swift
While Writing XCUITest
In mobile development, Page Object Model Pattern is applies during Selenium, Appium test cases by Test Developers. With XCUITest framework that is introduced by Apple, iOS Developers can also apply this practice. It reduces code duplication, increase code readability, scalability when more than one screens require to same feature. Technically, each pages contains user interface elements which is corresponding to its located screen. Let’s begin with refactoring my old UITest example to Page Object Model Pattern. It is from here.
This code isn’t reusable. We might need use this login logic for other screens. If we use this code block for other screens, we meet a classic code duplication problem.
Page Object Model Pattern
First, create LoginScreen.swift file inside the UITest folder and define XCUIElements corresponding to related screen after that define user interaction functions that returns itself.
Now, go to UITests.swift class and create login screen instance, call its method.
That’s all, we can easily see that we refactored login logic as a functionality to use in other screens. If you read to enjoy, follow me 👋