### Question:
ChangeScroll extends Transition { public ChangeScroll() {} ChangeScroll();  ChangeScroll(Context context, AttributeSet attrs); @Override void captureStartValues(@NonNull TransitionValues transitionValues); @Override void captureEndValues(@NonNull TransitionValues transitionValues); @Nullable @Override String[] getTransitionProperties(); @Nullable @Override Animator createAnimator(@NonNull ViewGroup sceneRoot,
            @Nullable TransitionValues startValues, @Nullable TransitionValues endValues);  }### Answer:
@Test public void testChangeScroll() throws Throwable { enterScene(R.layout.scene5); rule.runOnUiThread(new Runnable() { @Override public void run() { final View view = rule.getActivity().findViewById(R.id.text); assertEquals(0, view.getScrollX()); assertEquals(0, view.getScrollY()); TransitionManager.beginDelayedTransition(mRoot, mTransition); view.scrollTo(150, 300); } }); waitForStart(); Thread.sleep(150); rule.runOnUiThread(new Runnable() { @Override public void run() { final View view = rule.getActivity().findViewById(R.id.text); final int scrollX = view.getScrollX(); final int scrollY = view.getScrollY(); assertThat(scrollX, is(both(greaterThan(0)).and(lessThan(150)))); assertThat(scrollY, is(both(greaterThan(0)).and(lessThan(300)))); } }); waitForEnd(); rule.runOnUiThread(new Runnable() { @Override public void run() { final View view = rule.getActivity().findViewById(R.id.text); assertEquals(150, view.getScrollX()); assertEquals(300, view.getScrollY()); } }); }