我有这样的UI测试:
func testHome(){
if(isRedOrange.clear()){
//code
}
}
如何通过UI测试从isRedOrange.swift文件访问isRedOrange.clear函数?
答案 0 :(得分:5)
UI测试用黑框显示,因此您无权访问您的代码。
您可以在单元测试中使用@testable import
,因此将提供完全访问权限。
在运行UITests时,此方法不起作用,因为在UITest中,您的测试类无法访问应用程序的代码。
来自Apple的文档:
UI测试在根本上不同于单元测试。单元测试 使您可以在应用范围内工作,并可以锻炼身体 函数和方法,可以完全访问应用程序的变量和 州。用户界面测试以与用户相同的方式锻炼应用的用户界面 无需访问应用程序的内部方法,函数和 变量。这使您的测试可以以与用户相同的方式查看应用 这样做,暴露出用户遇到的UI问题。
您必须使用.tap()
的on元素来实现所有目的。 .accessibilityIdentifier
将帮助您获得正确的元素
答案 1 :(得分:4)
您需要将主模块(项目)导入测试:
ENABLE_TESTABILITY
中的Build Settings
设置为true。@testable import MAIN_TARGET_NAME
。答案 2 :(得分:3)
这个问题没有道理。您无法在界面测试中访问应用程序代码的任何。如果要访问代码,请编写单元测试。
答案 3 :(得分:0)
转到项目设置->选择目标对象->构建阶段标签->将您的swift文件添加到编译源中