XCTestのUIテストを介してMKMapViewのピンにアクセスするにはどうすればよいですか?XCTest UIテストによるMKAnnotation
私は特定のものを確認し、数をカウントする(アクセシビリティIDまたはタイトルに基づいて)がされている、など
MKAnnotationためXCUIElementTypeがあるように思えません。
MKMapView + XCTestに関するドキュメントが見つかりません。
XCTestのUIテストを介してMKMapViewのピンにアクセスするにはどうすればよいですか?XCTest UIテストによるMKAnnotation
私は特定のものを確認し、数をカウントする(アクセシビリティIDまたはタイトルに基づいて)がされている、など
MKAnnotationためXCUIElementTypeがあるように思えません。
MKMapView + XCTestに関するドキュメントが見つかりません。
UIAccessibilityIdentification
を使用してください。
class Annotation: NSObject, MKAnnotation, UIAccessibilityIdentification {
let coordinate: CLLocationCoordinate2D
let title: String?
var accessibilityIdentifier: String?
init(title: String?, coordinate: CLLocationCoordinate2D) {
self.title = title
self.coordinate = coordinate
}
}
let coordinate = CLLocationCoordinate2DMake(40.2853, -73.3382)
let annotation = Annotation(title: "A Place Title", coordinate: coordinate)
annotation.accessibilityIdentifier = "Some Identifier"
let mapView = MKMapView()
mapView.addAnnotation(annotation)
テスト中は、otherElements
で注釈を参照できます。
let app = XCUIApplication()
let annotation = app.maps.element.otherElements["Custom Identifier"]
annotation.tap()
残念ながら、注釈ビューはmaps
にありません。その代わりに関心のある地図ポイントがあります。注釈ビューを照会するには、XCUIApplication().windows.element.otherElements["Custom Identifier"]
を使用する必要があります。
アノテーションにaccessibilityIdentifier = "Custom Identifier"
を追加します。ビュー、注釈ではありません。 MKAnnotation
はaccessibilityIdentifier
を実装していません。
'app.otherElements [" Custom Identifier "]' – onmyway133
私はIBOutletをMKMapViewに使用しています。私がアクセスしようとすると「Mapと一致するものが見つかりません」というメッセージが表示されます。app.maps.element.otherElements ["Pin 1"] –