It's worth noting that what the author describes as functional testing was, in fact, what unit testing was originally intended to be. "Unit" referred to a unit of functionality, not a unit of code. But that was an ambiguous concept, and it was simpler and easier to just write tests for each unit of code (typically a method), and so that's the approach that has prevailed.