2016-10-24 10 views
0

私のUIテストでクラスを作成して、サインインして起動するよう呼びかけています。
私は常にコードを再利用しているわけではありません...私は新しいテストクラスを作成しました。
しかし、 'インスタンスメンバー'アプリ 'を受け取ることは、タイプ'サインアップの設定 'で使用できません。
私のコードの周りにget {}を追加しようとしました(他の質問で学んだように)
しかし、これはうまくいきませんでした。以下のように

私のコードは次のとおりです。IOS/Swift - 型メンバー 'app'をタイプERRORで使用することはできません

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

appはインスタンス変数です。つまり、インスタンスメソッドからのみアクセスできます。

signUpAppはタイプメソッドです。型メソッドはインスタンスメソッドではありません。型メソッドは、インスタンス変数やインスタンスメソッドにはアクセスできません。

appをタイプ変数(signUpSetUpと同じ)にするか、signUpAppをインスタンスメソッドにします。これらの2つのうちの1つだけを変更してください。

大文字で始まるようにクラスに名前を付けるのが標準的な方法であることに注意してください。メソッド名と変数名は、小文字で始まります。

+0

appに型変数を設定するにはどうすればよいですか? –

+0

私はすでに私の答えであなたに言った。 'signUpSetUp'型変数の場合と同じようにします。 – rmaddy

関連する問題