FakeIperf3Runner implements Iperf3Runner, so the widget tests exercise the
actual widget tree — GO, STOP, the status line, the stat row, validation —
with no MethodChannel and no native library. That was impossible while the
screen constructed its own Iperf3Service.
The view model tests share the same fake instead of each file carrying a
double that had to mirror the concrete service.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>