Hands-on guidance to creating great test-driven development practice Test-driven development (TDD) practice helps developers recognize a well-designed application, and encourages writing a test before writing the functionality that needs to be implemented. This hands-on guide provides invaluable insight for creating successful test-driven development processes. With source code and examples featured in both C# and .NET, the book walks you through the TDD methodology and shows how it is applied to a real-world application. You’ll witness the application built from scratch and details each step that is involved in the development, as well as any problems that were encountered and the solutions that were applied. Professional Test-Driven Development with C# shows you how to create great TDD processes right away.
"TDD can be intimidating to some developers. This is especially true for developers who do not spend the requisite amount of time away from work learning new technologies and techniques. The TDD approach is quite a departure from the traditional way of developing software. This drastic change can be difficult for some developers to understand and deal with. Some strategies can help members of your development team understand and adopt TDD. Telling then about this book is a good start. in addition, you can use some strategies to get your teammates interested in TDD" (2011, Bender et al.).
With these quote i resume all the book. Excellent book and highly recommended, a lot information about TDD Principles, good practices in software development and a lot of reference to other books and frameworks. Despite the book was written in 2011 is a good introduction for developers interesting on doing the things right.
"Getting management buy-in for TDD can be difficult task. TDD, especially for a developer or development team who is learning it, represents a significant learning curve that can make initial development much slower. Managers are tasked with getting software delivered on time [...]. A good tactic is to demonstrate that although the upfront development takes longer dramatically lower defect count after application reaches QA and the higher customer satisfaction after the application is deployed more than make up for the perceived slower start-up. Managers like charts and figures. [...] Show that TDD provides more value than development without TDD, and your manager will have to pay attention" (2011. Bender et al.).
I felt totally identified with this quote, specially with the last one.
When I read this it was a pleasure to get some decent information on testing and how to properly test code. Nice examples, nicely explained and there was proper justification to actual project management vs expected project management.
This entire review has been hidden because of spoilers.
This is a decent book to convince yourself that writing tests before code is a good thing. It is very readable.
For each class of tool used, the author picks one for use in the examples. The result is examples that relate to each other, allowing a reader to reinforce the concepts each time. There is a chapter which summarizes some of the different other tools which exist out there so you know that they exist. More tools will come out, tools will evolve, techniques invented etc... Hence this book can be used to jumpstart one's foray into TDD (or BDD? see next paragraph), but cannot possibly be a comprehensive reference.
The word 'testing' is in TDD, hence I can understand advocating the use of testing frameworks, IoC containers and mocking frameworks. However, this book does much of the tests in a BDD style. I feel that the book's title will be better named something like "Writing Tests before Code". A positive example would be the book "The Art of Unit Testing", which focuses solely on unit testing, has a paragraph saying that TDD is good, but does not otherwise sneak in TDD into the book.
That being said, I am not angry with the author. In fact, I'm rather pleased with being exposed to BDD. Nonetheless, I will be reading 'purer' TDD books ("Test Driven Development: By Example", "Growing Object-Oriented Software Guided by Tests") to find out more about TDD, and will find out more about BDD.
So, this books is indeed about how TDD helps produce maintainable code. This book is—as its title says—focused on Microsoft .Net platform and the associated tools. It recalls important concepts such as the SOLID principles, how to mock dependencies, etc. before to dive into .Net specific examples that cover WPF, WCF, etc.
What I like most is that it illustrates TDD in the context of Agile development, explaining how to break down a user story into features, and in turn into tests.
I'm not sure what to think about the inclusion of NBehave...it either should have been covered more, or left out entirely, IMO. I guess I'm intrigued enough to look into it some more. As with any book that covers TDD, there's quite an emphasis put on various frameworks (mocking, dependency injection, etc). It can be a lot to try and absorb if you're tentatively poking your toes in the TDD waters.
Anyway, this was pretty well written. Personally, I liked the integration of unit testing with the overall sample project you build in the book Pro ASP.NET MVC 3 Framework better. That sort of put everything in a really good, practical context which is a bit lacking in this book.
very comprehensive coverage of what developing c# code test driven is. If you need one book that covers unit, functional and even give you a quick glace at UI test this is the one for you. Definitely recommend this one!