This video is about 30 minutes long. Mike Gehard mentioned it to me, and I enjoyed the heck out of it. Many takeaways from this. One is is how using test doubles make sense at the beginning of a software project, but how it will eventually come back to bite you as the method signatures of dependencies change, and your tests don’t fail. Another is how you can write ‘fauxO’, a nice combination that has the strengths of functional programming and OO programming. A third is how and where integration tests make sense.
Overall, what he proposes is that the boundary of any object that makes decisions have parameters that are simple values so that that it is always easy to unit test them. Out of this proposal fall several nice features.
Well worth the time to watch.