2013-10-25 25 views
6

私は新しいAndroidテストライブラリEspressoを試しています。試してみる:AndroidのエスプレッソNoMatchingViewExceptionがチェックされている

onView(withId(R.id.gettingStarted)) 

テストは正常に動作します。しかし、私はしようとすると:

onView(withId(R.id.gettingStarted)).check(matches(isDisplayed())); 

を私は.NoMatchingViewException: No views in hierarchy found matching: with id: is <2131296645>

を取得する前に、このようなものを見た誰もいませんか?エスプレッソはバージョン1.0のみであるため、私の最初の反応はバグだということです。私はAndroid Studioを使用しており、設定の指示に正確に従っています。

答えて

7

onView(withId(R.id.gettingStarted))単独では何もしません。 performメソッドを呼び出すと、Espressoは現在のビュー階層に対してonViewメソッド内で提供されているマッチャーを実行します。一致するビューが見つからない場合は例外がスローされます。

は、より多くの詳細については、スタートガイドを参照してください。https://google.github.io/android-testing-support-library/docs/espresso/index.html

+3

ビューは階層に存在しますが、コントロールはロードされるビューより速く実行されていますか? –

0

テスト開発時にR.idを特定できない場合は、多くの正当なケースがあります。たとえば、特定のビューにR.idがないか、R.idが一意でない場合があります。これにより、正常な計測テストが脆く複雑になることがあります。通常のビューへのアクセス方法(findViewById())は機能しないためです。したがって、ビューを保持するアクティビティまたはフラグメントのプライベートメンバーにアクセスするか、または既知のR.idを持つコンテナを見つけて、特定のビューのコンテンツに移動する必要があります。詳細情報については

:これは正常な動作ですhttps://code.google.com/p/android-test-kit/wiki/EspressoStartGuide

+4

私はこれが正しいとは確信していません。あなたが指しているのはAmbiguousExceptionですが、ここでは単にビューを見つけることができません。とても奇妙なのは、それが見えているようですが、いったん何らかの主張をすれば、もはやそれを見つけることができません。 – Zargoon

0

これは関係なく、ビューが見えるか見えないかの、このIDにはビューはUIツリーの完全な階層で見つからなかったことを意味します。

関連する問題