2017-06-30 5 views
0

UIテストで、私のほぼ完成したObjective-Cコード化アプリの初心者向けUIテストを書いています。iOS - UI Testing TableViewCellで画像を検索

私はカスタムセルを持つUITableViewを持っています。セルには、テキストビューまたはイメージビューまたはプログレスビューがあります。イメージビューまたはプログレスビューは動的に設定されます。 私のテストでは、イメージが設定されているかどうかを確認する必要があります。私はaccessibilityIdentifierプロパティを使用しようとしました。私は取得していない

XCUIElementQuery *tablesQuery = app.tables; 
XCUIElementQuery *cellsQuery = app.tables.cells; 
XCUIElement *lastCell = [[tablesQuery childrenMatchingType:XCUIElementTypeCell] elementBoundByIndex:(cellsQuery.count - 1)]; 
XCUIElement *image = lastCell.otherElements[@"imageLabel"]; 

:私はのようなセルを取得し、それが識別子に応じて、要素だ取得しようと、私のテストでは

self.thumbnailImageView.isAccessibilityElement = YES; 
self.thumbnailImageView.accessibilityIdentifier = @"imageLabel" 

:私はそのセルの初期化メソッドでそれを設定しますapp.otherElementsの画像は複数のセルが作成されており、その多くに画像ビューがあるためです。私は最後のセルとそのイメージをチェックしたい。それは、このテストに合格しないと、例外ブレークポイントに入るんだ

XCTAssertTrue(image.exists, @"Image cell has failed"); 

(?):この後 は、私がアサートように設定します。私はイメージの状況をチェックする、それは無しではない。

私は正確に何をすべきかわかりません。 Objective-Cの場合、UIテストのドキュメントはほとんどありません。スウィフトスウィフトの文書は良いだろうが、十分ではない。

非常に助かります。ありがとうございました!

+0

Apple Docsのメニューバーで言語を切り替えることで、Objective-C APIのドキュメントを入手できます。ここでは、UIテストのためにアップルが提供する簡単な説明です:https://developer.apple.com/documentation/xctest/user_interface_tests?language=objc – Oletha

+0

ありがとう、私はそのサービスを知っているが、これは十分ではありません。 – anyName

答えて

0

UIテストは可視セルに対してのみ実行され、テストケースが実行されても最後のセルはロードされません。ですから、tableviewコンテンツをプログラム的にスクロールして、tableviewコンテンツの終わりに達すると(ここでもまた、tableviewコンテンツの終わりにスクロールするかどうかを予測する必要があります)。その後、あなたのUIテストは合格になります。

+0

しかし、私は同じlastCellオブジェクトを使用し、それがテキストを持っているかどうかを確認してもうまくいきます。それから私はアサーションを実行するときに挿入する必要があります。 – anyName

+0

コンテンツのオフセットにスクロールしたため、最後のセルがある時間。 –

+0

すべてが同じです。違いはなんですか? – anyName