Goal: I needed to create a website to market Bomboca Limited services. I wanted to create an architecture that would allow the application to have a good separation of concerns and testable.
Umbraco always seemed very difficult to test to me and I never found a proper guide with a solid foundation on how to unit test an Umbraco application (there could be one though - let me know).
The most useful content that I previously found was a CogWorks presentation about unit testing on Umbraco and Jorge Lusar’s suggestion on how to unit test a RenderMvcController in Umbraco.
I also saw some other stuff like Aaron Powell on how to unit test but it was related to web forms and this guide is particularly focused on Umbraco 7 and MVC (it will likely work on 6 too).
Anyway, none of the suggestions I found was a complete solution that would put me on track with the confidence of a testable and maintainable application. So I took the information I had and built a loosely coupled umbraco application using TDD approach. You might use a similar architecture in your next Umbraco application adapted to your needs.
Along the way, I’ll mention the problems I faced, how I solved them, why I made certain decisions, what are the limitations of my approach and what you can do in your case, if you need to overcome them.