如何从我的UI测试访问我的swift类?

时间:2018-08-11 12:59:23

标签: ios swift xcode xcode-ui-testing xcuitest

我有这样的UI测试:

    func testHome(){
         if(isRedOrange.clear()){
                //code
            }
    }

如何通过UI测试从isRedOrange.swift文件访问isRedOrange.clear函数?

4 个答案:

答案 0 :(得分:5)

UI测试用黑框显示,因此您无权访问您的代码

您可以在单元测试中使用@testable import,因此将提供完全访问权限。 在运行UITests时,此方法不起作用,因为在UITest中,您的测试类无法访问应用程序的代码。

来自Apple的文档:

  

UI测试在根本上不同于单元测试。单元测试   使您可以在应用范围内工作,并可以锻炼身体   函数和方法,可以完全访问应用程序的变量和   州。用户界面测试以与用户相同的方式锻炼应用的用户界面   无需访问应用程序的内部方法,函数和   变量。这使您的测试可以以与用户相同的方式查看应用   这样做,暴露出用户遇到的UI问题。

您必须使用.tap()的on元素来实现所有目的。 .accessibilityIdentifier将帮助您获得正确的元素

答案 1 :(得分:4)

您需要将主模块(项目)导入测试:

  • 确保已将主项目目标的ENABLE_TESTABILITY中的Build Settings设置为true。

enable_testability

  • 要将其导入测试,请在UITests文件中调用@testable import MAIN_TARGET_NAME

enter image description here

答案 2 :(得分:3)

这个问题没有道理。您无法在界面测试中访问应用程序代码的任何。如果要访问代码,请编写单元测试。

答案 3 :(得分:0)

转到项目设置->选择目标对象->构建阶段标签->将您的swift文件添加到编译源中