2015-09-09 7 views
5

Ich mache eine UI Unit Testing. In dem Bild.
Sie sind UILabels außer lange Beschreibung, die UITextView ist.
In der Seite möchte ich Assert Test den Wert in der Antwort.

Für die Antwort in der UILabels sind in Ordnung. Ich kann folgen Xcode UI Test example
Die Methode ist ziemlich einfach zu folgen, tippen Sie einfach auf das Element und ändern Sie die Methode von .tap() zu .exist() Dann legen Sie es durch assert();

Mein Problem ist UITextView ist komplizierter als UILabel.
Wie kann ich den Wert von UITextView bekommen, um Assert-Check zu tun?Wie TextView Wert in XCode7 iOS9 geltend machen?

func testG(){ 

let app = XCUIApplication() 
app.launch(); 
app.buttons["Enter"].tap() 
app.tables.staticTexts["Bee"].tap() 

assert(app.scrollViews.staticTexts["Name :"].exists); 
assert(app.scrollViews.staticTexts["Age :"].exists); 
assert(app.scrollViews.staticTexts["Specialty :"].exists); 
assert(app.scrollViews.staticTexts["Description :"].exists); 

assert(app.scrollViews.staticTexts["Bee"].exists); 
assert(app.scrollViews.staticTexts["11"].exists); 
assert(app.scrollViews.staticTexts["Sky Diver"].exists); 
let text = "Bees are flying insects closely related to wasps and ants, known for their role in pollination and, in the case of the best-known bee species, the European honey bee, for producing honey and beeswax. Bees are a monophyletic lineage within the superfamily Apoidea, presently considered as a clade Anthophila. There are nearly 20,000 known species of bees in seven to nine recognized families,[1] though many are undescribed and the actual number is probably higher. They are found on every continent except Antarctica, in every habitat on the planet that contains insect-pollinated flowering plants.EOF"; 
assert(app.scrollViews.childrenMatchingType(.TextView).element.exists); 
} 

UI with scrollbar

+1

Haben Sie versucht, den 'Wert' zu lesen? http://masilotti.com/xctest-documentation/Protocols/XCUIElementAttributes.html#//api/name/value – dasdom

+1

@dasdom. Danke für Ihre Antwort. Ich gebe den Wert entsprechend Ihrer Antwort an. Jetzt kann ich Assertion durch 'XCTAssertEqual (app.scrollViews.childrenMatchingType (.TextView) .element.value als? String, Text)' – Sarit

+1

Dies sollte als Antwort auf diese Frage hinzugefügt werden. Es hat für mich funktioniert. – moliveira

Antwort

1

Falls sich jemand findet, sonst diese Frage, ich bin in der Lage ein UITextView ‚s Text zu erhalten, indem

app.textViews.element.value as? String 

Diese Verwendung übernimmt es gibt nur eine Text-Ansicht auf dem Bildschirm zu der Zeit.

1
XCTAssert(app.scrollViews.staticTexts[text].exists, "Didn't find the text!") 

Sie glauben nicht, dass Sie hier den Wert so dass Sie kann nur behaupten müssen feststellen, dass es da ist. Wenn es ein Textfeld wäre, dann wäre die value eine gute Möglichkeit, es zu tun.

+1

Wow. Danke für Ihre Antwort. Es sieht sauberer aus als meiner. Wenn ich wieder ein Problem wie meine Frage gefunden habe. Ich werde deiner Antwort folgen. – Sarit

+0

Ich habe diesen Weg versucht und es hat nicht für mich funktioniert. Die Antwort in den obigen Kommentaren funktioniert jedoch. Der einzige Unterschied zwischen dem obigen Beispiel und meinem Anwendungsfall besteht darin, dass mein UITextView in eine UIContainerView eingebettet ist. – moliveira

Verwandte Themen