TDD Immersion – Resources, Links, Slides, and Code

Here are some TDD-related links as well as the slides and code samples from TDD Immersion.


Intro to TDD
Writing Testable Code
Using Rhino Mocks
Using Moq
Dependency Injection With StructureMap
Tying It All Together


ASP.NET MVC Sample Project – sample project that shows you have set up an ASP.NET MVC project using StructureMap and Rhino Mocks so that you can effectively unit test the application
HttpInterfaces – interfaces for unmockable HttpContext and related classes
Specs2Tests – turn English acceptance criteria into test code

Mocking Frameworks

Rhino Mocks – download
Rhino Mocks, documented through tests
Rhino Mocks – documentation (you know, the kind with sentences and paragraphs)
Moq, documented through tests (by Steve Horn)

Dependency Injection Frameworks (a.k.a. Inversion of Control Containers)


Other Stuff

Should – extension methods to help with testing like ShouldEqual()


The Art of Unit Testing, by Roy Osherove
Test Driven Development: By Example, by Kent Beck
Test Driven Development: A Practical Guide, by David Astels

Books – Acceptance Testing

Specification by Example, by Gojko Adzic
The Cucumber Book: Behaviour-Driven Development for Testers and Developers, by Matt Wynne and Aslak Hellesoy
Cucumber and Cheese, by Jeff “Cheezy” Morgan

Even More Reading

Test Driven Development

TDD Design Starter Kit: It’s All about Assigning Responsibilities
TDD Design Starter Kit – State vs. Interaction Testing
TDD Design Starter Kit – Dependency Inversion Principle
TDD Design Starter Kit – Responsibilities, Cohesion, and Coupling
TDD Design Starter Kit – Static Methods and Singletons May Be Harmful
Succeed with TDD by designing with TDD
Unit Testing Business Logic without Tripping Over the Database
Haacked on TDD and Jeremy’s First Rule of TDD
Jeremy’s Second Law of TDD: Push, Don’t Pull
Achieve Better Results by following Jeremy’s Third Law of TDD: Test Small Before Testing Big
How much design before unit testing, and how much design knowledge before TDD?
So How do You Introduce TDD into an Organization or Team?
Pair Programming Bot
Why write unit tests?
Empirical Studies Show Test Driven Development Improves Quality
The Relative Cost of Fixing Defects

StructureMap / dependency injection

Introduction to StructureMap
Jeremy Miller’s blog (author of StructureMap)
DimeCasts on StructureMap
Inversion of Control with the Plugin Pattern
What’s so great about Inversion of Control?
The Dependency Injection Pattern – What is it and why do I care?

Behavior Driven Development

Behavior Driven Development article from CODE Magazine – this one is a must read if you want to understand BDD.
BDD Wiki
Introducing BDD

Software Design

Writing Testable Code Is About Managing Complexity
Writing Testable Code