2016-08-10 1 views
3

Daniele Bottilo의 드로어 블 매처를 his medium post에서 구현했습니다.ImageView에 드로어 블이 포함되어 있는지를 에스프레토 테스트

이제 이미지보기가 비어 있지 않은지 테스트하고 싶습니다. 나는이 시도 :

onView(withId(R.id.image)) 
     .check(matches(not(noDrawable()))); 

그것은 작동하지 않습니다, IDE는이 (org.hamcrest에 적용 할 수 없습니다 술어에 (... guava.base.Predicate) 나에게

을하지 경고합니다. Matcher)

저는 Espresso와 havent를 처음 사용하여 Google에서 성공적으로 답변을 관리합니다. 내가 사용 중이어야하는 다른 패키지에 'Not'가 있습니까? 아니면 여기서 내가 뭘 잘못하고 있습니까?

답변

6

중간에 이미 답변했지만 아직 답변을 게시하지 않습니다.

public static Matcher<View> hasDrawable() { 
    return new DrawableMatcher(DrawableMatcher.ANY); 
} 

을 그리고 DrawableMatcher 당신은 같은 것을 할 수 있습니다 : EspressoTestsMatchers에서 나는 추가 할

static final int EMPTY = -1; 
static final int ANY = -2; 

@Override 
protected boolean matchesSafely(View target) { 
    ... 
    ImageView imageView = (ImageView) target; 
    if (expectedId == EMPTY){ 
     return imageView.getDrawable() == null; 
    } 
    if (expectedId == ANY){ 
     return imageView.getDrawable() != null; 
    } 
    ... 
} 

는 사실 내가 귀하의 요청에 내 게시물을 업데이트해야한다고 생각! hasDrawable() 매처가 유용 할 수 있습니다.

+0

위대한 답과 게시, 정말 고마워요! – RobertoAllende

관련 문제