I gave a presentation tonight at the Charlottesville .NET user group on building testable applications. The presentation was focused around the Single Responsibility Principle and the Dependency Inversion Principle. We started off with a very simple app that we slowly factored out dependencies into their own class, and then implemented a dependency injection framework (Ninject) in order to resolve our dependencies. Then we implemented a mocking framework (Moq) in order to mock our dependencies to use in testing. The application was built in a series of steps, and by popular demand I have attached to this post the final result of the application refactoring! (Popular demand, ha!)
Anyways, unlike my previous experience, this talk went really really well and I got quite a bit of good feedback from the talk. I can’t wait to give the talk again, I really wish that I had submitted it to DevLink instead of one of the other talks that I am giving.
I wanted to thank everyone who came out to see the talk, I really enjoyed giving it! I can’t wait to give it at the Richmond .NET User Group in October!
Oh, and the presentation was only a few slides with just pictures. I didn’t attach it because it really makes no sense out of context.
Source for the test project updated with start and finish project
Loved the article? Hated it? Didn’t even read it?
We’d love to hear from you.
Nice blog, keep posting about application on this blog…
Can you please attach also the starting point ?
Ditto – it’d be great to see where the project started as well as where it ended.
Alright guys, I updated the download with the start and finish projects.
Great talk last night Justin. I’ve previously looked at what it would take to get my applications completely testable by decoupling the dependencies but it seemed like more trouble than it was worth. It really connected for me last night and I’m digging into the various tools you shared.
@Stuart I’m glad you enjoyed the talk! I was happy that you had a lot of good questions, I think others had similar questions and sometimes they are just hesitant to ask them! I’m considering making the entire talk into a series of blog posts.
@Justin I think it would make a great blog series. You can count on me as an active participant. I think it makes a real difference to see the tools and patterns pulled together in a practical way that makes it accessible to the average developer.
When in October are you presenting at the Richmond .NET users group? I live in the Washington, D.C. area but I would love to see this presentation (and I’ve heard a lot of good things about the Richmond and Charlottesville, VA .NET communities).
@Zack I believe it will be on October 1st. Usually the Richmond .NET User groups are on the first Thursday of the month.
Leave a comment