Thanks Chris. What you've described sounds very much like the "ports and adapters" architecture ... is that how you see it? My Modularity and Testability blog post talks about testing a little further but, if anything, I think the test cost is reduced because I'm not mocking stuff out in order to be able to write fine-grained class-level tests. It's all trade-offs though, and this approach isn't suitable if you're interacting with external/asynchronous services, for example.
E-mail addresses are not publicly displayed, so please only leave your e-mail address if you would like to be notified when new comments are added to this blog entry (you can opt-out later).