問題
EspressoでNestedScrollViewにscrollTo()が効かないことに気づいた。
scrollTo()の実体であるScrollToActionの実装を見たら原因がわかった。
@SuppressWarnings("unchecked")
@Override
public Matcher<View> getConstraints() {
return allOf(withEffectiveVisibility(Visibility.VISIBLE), isDescendantOfA(anyOf(
isAssignableFrom(ScrollView.class), isAssignableFrom(HorizontalScrollView.class))));
}
NestedScrollViewはDesign Support Libraryに入っている都合からか入っていない(当然っちゃ当然)。
ScrollToActionクラスをextendsしてgetConstraints()メソッドをオーバーライドして
isAssignableFrom(NestedScrollView.class) を追加したら良いかと考えたけど、
ScrollToActionクラスにfinalがついてるのでそれもできない。
仕方がないので ScrollToActionクラスを丸コピーして対応した。