2

我想将MKAnnotationViewXCTestCase的与 UITest 一起使用,因此我将 mapView 作为XCUIElement. 我不知道如何从 mapView 获取注释,我不想在屏幕上放置固定位置,因为它在各种设备上进行了测试。所以我被困在 let mapView:XCUIElement = app.maps.elementBoundByIndex(0)

有任何想法吗?

4

1 回答 1

2

要与属性otherElements引用的地图注释交互。title

例如,在您的生产代码中,在您的MKAnnotation.

class Annotation: NSObject, MKAnnotation {
    let coordinate: CLLocationCoordinate2D
    let title: String?

    init(title: String?, coordinate: CLLocationCoordinate2D) {
        self.title = title
        self.coordinate = coordinate
    }
}

let coordinate = CLLocationCoordinate2DMake(40.703490, -73.987770)
let annotation = Annotation(title: "BeerMenus HQ", coordinate: coordinate)
let mapView = MKMapView()
mapView.addAnnotation(annotation)

然后在测试中,您可以通过它的title属性引用注释。

let app = XCUIApplication()
let annotation = app.maps.element.otherElements["BeerMenus HQ"]
annotation.tap()
于 2016-06-06T10:55:53.807 回答