Flutter test library documentation here.
Tester.pump() runs one frame of the app and then stops.
Tester.pumpAndSettle() runs until the queued events are all done.
You can do find.byIcon() or find.byType() (and likely a lot of other useful things too).
For converting JSON, quick and easy way is to use dart:convert (built-in).
Factory: function that looks like a constructor. Does its stuff, calls actual constructor (or fetches the already-existing object you want), returns value. Can be used for singletons etc.
Don’t need ‘new’ keyword in Dart 2.0
Built Value library: generates (source) code on your behalf. (Look into flutter source gen). Good for things where the structure of the data might be unknown or might change on you (eg. JSON pulled from a constantly-changing API)
Built Value = immutable data class. You hand it data to populate itself with and after populating, nothing can mess with it.