我通常使用PageObject(ScreenObject)模式来组织代码。https://github.com/rzakhar/xctest-assignment/blob/master/TestTarget/TestClass.swift
我正在尝试找到有关如何在XCTestCase中构造UI测试方法以访问和测试仅在用户登录后才能访问的应用程序页面的最佳实践。
为了使我能够测试私人“照片查看”页面的用户界面,我的测试方法需要: 1.登录, 2.转到“相册列表”页面, 3.点击列表中的第一个相册,然后转到“相册视图”页面, 4.点击列表中的第一张照片,然后转到“照片视图”页面, 5.最后,编写断言以测试“照片视图”页面的用户界面。
因此,要读取目标页面,我的UI测试需要遍历多个页面。而且,如果我需要为“照片视图”页面编写几种UI测试方法,那么我的每个测试方法都需要一次又一次地通过相同的应用程序页面。
构造我的测试方法以测试内部应用页面的最佳实践是什么?
应该遵循BDD的操作,并使用一种方法编写基类:
givenThatLoginIsSuccessful()
然后创建一个新的Test Case类,该类扩展了基类并具有如下方法:
// Given givenThatLoginIsSuccessful() givenThanAlbumsListPageHasAlbums() giveThatAlbumViewPageHasPhotos() // When whenThumbnailPhotoTapped() // Then thenLargeSizePhotoIsVisible() thenDismissLargePhotoButtonIsEnabled() thenDownloadLargePhotoButtonIsEnabled()
你们如何组织用于测试内部/深度应用页面的UI测试方法?
我正在尝试找到有关如何在XCTestCase中构建UI测试方法的最佳实践,以访问和测试仅在用户登录后才能访问的应用程序页面。对我来说,我能够测试...的UI了] >
我通常使用PageObject(ScreenObject)模式来组织代码。https://github.com/rzakhar/xctest-assignment/blob/master/TestTarget/TestClass.swift
您可以在此问题XCUITest using Robot pattern can't print the erroneous line中看到此模式的另一种实现方式>
还有其他技术,应根据测试选择它们。
我通常使用PageObject(ScreenObject)模式来组织代码。https://github.com/rzakhar/xctest-assignment/blob/master/TestTarget/TestClass.swift