2015-11-18 5 views
7

XcodeとXCTestに統合されたUIテストケースクラスを使用して、アプリケーションUIをテストしています。私のようにtextField.valueを試してみたSwift UI Testing TextFieldのアクセス文字列

app = XCUIApplication() 
    let textField = app.textFields["Apple"] 
    textField.typeText("text_user_typed_in") 
    XCTAssertEqual(textField.text, "text_user_typed_in") 

:私はこのような何かをテストしたいです! Stringメソッド。それは動作しません。 expectationForPredicate()で新しい非同期メソッドを使用しようとしましたが、タイムアウトになります。

どうすればいいですか? または、この種の検証はUIテストでは不可能であり、ブラックボックステストのみを書くことができましたか?

+0

Thx @Charles A.問題はtextFieldが存在しないことを指摘しています。私はtypeTextメソッドを呼び出すため、テキストがtextFieldに入力されているのを見ることができるので混乱します。 – leoluo

答えて

17

が、私はこのコードを使用し、それが正常に動作します:

textField.typeText("value") 
XCTAssertEqual(textField.value as! String, "value") 

あなたが似た何かをやっているし、それが機能していない場合、私はあなたのTextField要素が実際に存在することを確認してくださいになります。

XCTAssertTrue(textField.exists, "Text field doesn't exist") 
textField.typeText("value") 
XCTAssertEqual(textField.value as! String, "value", "Text field value is not correct") 
+0

あなたは正しいです。 textFieldは存在しません。しかし、私はこれを理解していません:私はtextFieldの上にtypeTextを呼び出すと、テキストがtextFieldに入力されていることがわかります。 – leoluo

+0

これに対して非同期メソッドを使うべきですか? – leoluo

+0

最初のテキストは "Apple"ですか?デフォルトの動作はおそらく、フィールドのアクセシビリティラベルがその内容であるため、要素を2回目に試して解決しようとするとクエリが失敗します。 –

関連する問題