Skip to Content

Foundations of Programming: Test-Driven Development

Printer-friendly versionPrinter-friendly version

A solid overview of test-driven development (TDD). The focus of this short, two-hour course is not to provide extensive code samples or in-depth discussions of TDD techniques, but rather to explain TDD and provide the viewer with the basic concepts and tools necessary to help them begin using this development approach.

The majority of the course is language and platform-agnostic; the instructor instead mostly focuses on abstract concepts and only occasionally dives into actual code samples. Due to this, some viewers who prefer a hands-on approach to learning may want to look for a tutorial more focused on their own environment. Having said that, the instructor's explanations of the abstractions are clear and each lesson builds on the last lesson, incrementally developing a solid foundation of TDD knowledge.

The course is not only focused on abstractions, however; the instructor provides plenty of useful, concrete tools and techniques, from mocking frameworks for a variety of environments to handling the testing of exceptions.

One notable characteristic: the first third of the lesson course is comprised of a head-on shot of the speaker, which can be slightly unsettling if you are accustomed to seeing slides or code samples onscreen as in other courses.

Overall, if you already have some experience with TDD, you may not get a lot of value of this course beyond some useful tips scattered throughout (e.g. mocks v.s. fakes). On top of that, if you prefer learning with a hands-on approach, you may not enjoy the hands-off, conceptual focus of this course. Having said that, the most important aspect of TDD is understanding the shift in development focus and this course handily develops that foundation of knowledge.