IOS / Swift - 实例成员'app'不能用于ERROR类型

时间:2016-10-24 12:52:06

标签: ios swift xcode-ui-testing

我正在我的UI测试中创建一个类来调用登录进行启动。
所以,我不是经常重用代码...我已经创建了新的测试类。
但是,接收'实例成员'应用'不能用于类型'注册设置'。
我尝试在我的代码周围添加get {}(如在其他问题中学到的)
但是,这不工作。

我的代码如下:

import XCTest
class signUpSetUp: XCTestCase {
    let app = XCUIApplication()
    var systemAlertMonitorToken: NSObjectProtocol? = nil

    static let signUpSetUp = XCUIApplication(privateWithPath: nil, bundleID: "com.apple.springboard")

    class func signUpApp() {
        XCUIApplication().launch()
        signUpSetUp.launch()

        sleep(2)
        let element = app.buttons["Enable notifications"]
        if element.exists {
            element.tap()
        }
        sleep(3)

        let notifcationsAlert = self.app.alerts.buttons["OK"]
        if notifcationsAlert.exists{
            notifcationsAlert.tap()
            notifcationsAlert.tap()
        }
        sleep(2)
        waitForElementToAppear(self.app.tabBars.buttons["Nearby"])
        let nearbyTab = self.app.tabBars.buttons["Nearby"]
        if nearbyTab.exists {
            nearbyTab.tap()
        }
        sleep(2)
        let enableLocation = self.app.buttons["Enable location"]
        if enableLocation.exists {
            enableLocation.tap()
        }
        let allowLocation = self.app.alerts.buttons["Allow"]
        if allowLocation.exists {
            allowLocation.tap()
            allowLocation.tap()
        }
        sleep(2)
        waitForElementToAppear(self.app.tabBars.buttons.elementBoundByIndex(4))
        let settingsButton = self.app.tabBars.buttons.elementBoundByIndex(4)
        XCTAssert(settingsButton.exists)
        settingsButton.tap()

        let signUpButton = self.app.tables.staticTexts["Sign Up"]
        if signUpButton.exists {
            signUpButton.tap()
        }        

    }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

app是一个实例变量。这意味着它只能从实例方法中访问。

signUpApp是一种类型方法。类型方法不是实例方法。类型方法无法访问任何实例变量或任何实例方法。

使app成为类型变量(就像signUpSetUp)或使signUpApp成为实例方法。只做出这两个变化中的一个。

不相关但请注意,将类命名为以大写字母开头是标准做法。方法和变量名称以小写字母开头。