2016-08-10 11 views
3

Daniele BottiloのDrawable matcherをhis medium postから実装しました。ImageViewにdrawableが含まれているかどうかのエスプレッソ

今、イメージビューが空でないことをテストするために使用したいと思います。私はこれを試してみました:

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

それはIDEは私

ないと警告し、動作しません(... guava.base.Predicateは)述語には(org.hamcrestに適用することはできません。 Matcher)

私はエスプレッソを初めて利用しており、haventはGoogleの回答をうまく管理しています。私が使用しているはずの別のパッケージに「ない」とか、ここで間違っているのは何ですか?

答えて

6

私はすでにミディアムであなたに答えましたが、私はここでも私の返信を投稿します。 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; 
    } 
    ... 
} 

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

そしてDrawableMatcher中に、あなたはこのような何かを行うことができます! hasDrawable()マッチャーは役に立ちます:)

+0

偉大な答えとポスト、ありがとう! – RobertoAllende

関連する問題