我正在尝试为我公司的应用编写UITests。我遇到了几篇关于将命令行参数传递给我的应用程序的文章,例如:
if CommandLine.arguments.contains("--uitesting-enrolled") {
resetEnrolledState()
} else if CommandLine.arguments.contains("--uitesting-unenrolled") {
resetUnenrolledState()
}
在resetEnrolledState()
和resetUnenrolledState()
方法中,我设置/取消设置UserDefault
值,以便我知道我的环境已正确配置。
有没有比将我的prod代码与我的测试代码混合更好的选择?
答案 0 :(得分:2)
我所知道的唯一方法是混合您的生产和测试代码,这是设计的。 From Apple's documentation:
用户界面测试以与用户无法访问您应用的内部方法,功能和变量相同的方式运行您应用的用户界面。
我能给出的最好的建议是尝试将所有以测试为中心的代码放在一个地方,并尽可能多地进行单元测试。