关于属性值 iOS/Swift 的 UI 测试
Posted
技术标签:
【中文标题】关于属性值 iOS/Swift 的 UI 测试【英文标题】:UI Testing with respect to a attribute value iOS/Swift 【发布时间】:2019-05-07 13:48:19 【问题描述】:我正在为我的应用程序编写 UI 测试。我在PhotosViewController
中有一个名为numberOfPhotos
的属性,它的值是从另一个ViewController 设置的。每当numberOfPhotos
为2 时,我当前的PhotosViewController
中应该只显示两张照片。
我能够测试所需数量的图像是否可见,但我无法从 UITests 类设置 numberOfPhotos
。无论如何我可以设置这个值并继续测试。
Currents 我正在编辑代码以设置numberOfPhotos
的值并对其进行测试。无论如何我可以从 UITests 类设置这个值。谢谢。
【问题讨论】:
【参考方案1】:它们是不同的应用程序,这就是您不能直接设置的原因。 UiTests 使用运行您的应用程序的测试运行器。有一种方法可以使用launchArguments
来做你想做的事。
根据您的测试:
let app = XCUIApplication()
app.launchArguments = XCUIApplication().launchArguments + ["UiTesting", "numberOfPhotos", "2"])
app.launch()
来自您的应用:
var isUiTesting: Bool
return ProcessInfo.processInfo.arguments.contains("UiTesting")
在您的控制器中编写一些代码来检查isUiTesting
属性并根据接下来的几个launchArguments
设置照片的数量。您必须对启动参数进行一些解析。
【讨论】:
以上是关于关于属性值 iOS/Swift 的 UI 测试的主要内容,如果未能解决你的问题,请参考以下文章
iOS/Swift:用于 UI 测试的“没有这样的模块...”
iOS Swift UI Tests (XCUITests) 稳定性问题 - fastlane scan
如何在 iOS + Swift 中关闭我的应用程序的 Internet 访问