With testing code, there are competing approaches of outside-in vs. inside-out.
Instead, I work outside-in *then* inside-out:
Outside-in means writing high-level tests about the expected functionality, then testing and extracting smaller and smaller pieces of functionality.
Inside-out means testing and writing the smaller pieces of functionality and composing them into larger functionality.
(1/3)