You're not attempting to do agile software development without TDD, are you? The ability to do TDD is an essential programmer skill, as is the ability to keep a code base clean through refactoring.
In our most popular course, you'll obtain a solid foundation for doing test-driven development (TDD). You'll also learn the value of continual refactoring, a practice core to TDD and essential to sustaining your investment in your software. Lecture is brief, as we instead emphasize lots of hands-on coding exercises and demonstrations. You'll learn why we consider TDD a design technique, and how to increase the value of the tests you build.
Due to the popularity of the Java version of this offering, we've recently introduced comparable training in C++ and Ruby.
We are usually able to provide exercises using your unit testing tool of choice, whether it be JUnit 3.x, JUnit 4.x, TestNG, RSpec, CppUnit, CppUnit Lite, Tut, CppUTest, or something else.
Overview of Test-Driven Development xUnit (tool) overview Basic TDD technique - demo and exercise TDD and design Basic "mock" technique - demo and exercise Test smells - exercise Refactoring and design Refactoring drivers Code smells Simple design Simple style Classic design principles Basic refactorings - demo and exercise Additional catalog refactorings Macro refactorings - demo and exercise Backing into tests Additional mock topics - demos, exercises Mock organization (including self shunt) Mock injection (factory, override) Challenges with mocking When to use and not use Optional Topics (see below) ConclusionsMany customers are interested in learning about various topics related to TDD. The last half day is focused on a topic or topics near and dear to your needs. Most customers choose the legacy code or acceptance test material. We can customize your experience beyond what you see here. Let us know what you're looking for.
Writing tests for legacy code (exercises available) Integration testing vs. unit and acceptance testing (discussion) Performance and load testing (exercise available) Testing web sites (exercise available) UIs (exercise available) Asynchronous services (exercise available) Synchronization (exercise available) Databases (discussion) Acceptance Tests (ATs) (discussion, exercises available) Deriving ATs from Stories ATs vs. Use Cases Fitnesse Increasing Unit Test Coverage Via ATs Designing Tests With Fitnesse Tables Building Fitnesse Fixtures