我正在我的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()
}
}
}
有什么想法吗?
答案 0 :(得分:1)
app
是一个实例变量。这意味着它只能从实例方法中访问。
signUpApp
是一种类型方法。类型方法不是实例方法。类型方法无法访问任何实例变量或任何实例方法。
使app
成为类型变量(就像signUpSetUp
)或使signUpApp
成为实例方法。只做出这两个变化中的一个。
不相关但请注意,将类命名为以大写字母开头是标准做法。方法和变量名称以小写字母开头。