tester.pump(Duration duration)

Schedules a frame and triggers a rebuild of the widget.
If a Duration is specified, it advances the clock by
that amount and schedules a frame. It does not schedule
multiple frames even if the duration is longer than a
single frame.

Note:
  To kick off the animation, you need to call pump()
  once (with no duration specified) to start the ticker.
  Without it, the animation does not start.

tester.pumpAndSettle()

Repeatedly calls pump() with the given duration until
there are no longer any frames scheduled.
This, essentially, waits for all animations to complete.

These methods provide fine-grained control over the build lifecycle,
which is particularly useful while testing.

5. Search for our widget using a Finder