Issue
This would seem to be correct...
onView (withId (R.id.menu_delete)).check (matches (not (isDisplayed ())));
...but it throws this exception:
android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: com.just10.android:id/menu_delete
If the target view is not part of the view hierarchy, you may need to use Espresso.onData to load it from one of the following AdapterViews:com.github.ksoichiro.android.observablescrollview.ObservableListView{3169f0f3 VFED.VC. .F...... 0,0-480,724 #102000a android:id/list}
What's the best way to assert a view should not be displayed?
Solution
What I should have used is this:
onView(withId(R.id.menu_delete))
.check(doesNotExist());
This maybe particular to the fact that the view is in the options menu and may or may not actually exist at any given time, depending on the implementation in onCreateOptionsMenu and onPrepareOptionsMenu
EDIT
This is another method that worked for me for non-menu views:
onView (withID(R.id.menu_delete))
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.GONE)));
Answered By - Cory Roy
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.