独自のカスタムマッチャを作成する必要がありますデフォルトでは、これらのマッチャーのいずれか。
これは幸いにも非常に簡単に行うことができます。フォントサイズのために、この例を見てみましょう:
public class FontSizeMatcher extends TypeSafeMatcher<View> {
private final float expectedSize;
public FontSizeMatcher(float expectedSize) {
super(View.class);
this.expectedSize = expectedSize;
}
@Override
protected boolean matchesSafely(View target) {
if (!(target instanceof TextView)){
return false;
}
TextView targetEditText = (TextView) target;
return targetEditText.getTextSize() == expectedSize;
}
@Override
public void describeTo(Description description) {
description.appendText("with fontSize: ");
description.appendValue(expectedSize);
}
}
そして、そのようにエントリポイントを作成します。
public static Matcher<View> withFontSize(final float fontSize) {
return new FontSizeMatcher(fontSize);
}
をそして、このようにそれを使用するための:
onView(withId(R.id.editText1)).check(matches(withFontSize(36)));
幅は&で、同様の方法で行うことができます。