I am trying to verify that a ListView does not contain a particular item. Here\'s the code I\'m using:
onData(allOf(is(instanceOf(Contact.class
According to Espresso samples you must not use onData(...) to check if view doesn't exists in adapter. Check this out - link. Read "Asserting that a data item is not in an adapter" part. You have to use a matcher together with onView() that finds the AdapterView.
Based on Espresso samples from link above:
matcher:
private static Matcher withAdaptedData(final Matcher then onView(...), where R.id.list is the id of your adapter ListView:
@SuppressWarnings("unchecked")
public void testDataItemNotInAdapter(){
onView(withId(R.id.list))
.check(matches(not(withAdaptedData(is(withContactItemName("TestName"))))));
}
And one more suggestion - to avoid writing is(withContactItemName(is("TestName")) add below code to your matcher:
public static Matcher
then you'll have more readable and clear code is(withContactItemName("TestName")