Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better

If you program in C++ you’ve been neglected. Test-driven development (TDD) is a modern software development practice that can dramatically reduce the number of defects in systems, produce more maintainable code, and give you the confidence to change your software to meet changing needs. But C++ programmers have been ignored by those promoting TDD–until now. In this book, Jeff Langr gives you hands-on lessons in the challenges and rewards of doing TDD in C++.

Modern C++ Programming With Test-Driven Development, the only comprehensive treatment on TDD in C++ provides you with everything you need to know about TDD, and the challenges and benefits of implementing it in your C++ systems. Its many detailed code examples take you step-by-step from TDD basics to advanced concepts. As a veteran C++ programmer, you’re already writing high-quality code, and you work hard to maintain code quality. It doesn’t have to be that hard.

In this book, you’ll learn:

  • how to use TDD to improve legacy C++ systems
  • how to identify and deal with troublesome system dependencies
  • how to do dependency injection, which is particularly tricky in C++
  • how to use testing tools for C++ that aid TDD
  • new C++11 features that facilitate TDD

As you grow in TDD mastery, you’ll discover how to keep a massive C++ system from becoming a design mess over time, as well as particular C++ trouble spots to avoid. You’ll find out how to prevent your tests from being a maintenance burden and how to think in TDD without giving up your hard-won C++ skills. Finally, you’ll see how to grow and sustain TDD in your team.

Whether you’re a complete unit-testing novice or an experienced tester, this book will lead you to mastery of test-driven development in C++.

What You Need

  • A C++ compiler running under Windows or Linux, preferably one that supports C++11. Examples presented in the book were built under gcc 4.7.2.
  • Google Mock 1.6 (downloadable for free; it contains Google Test as well) or an alternate C++ unit testing tool. Most examples in the book are written for Google Mock, but it isn’t difficult to translate them to your tool of choice.
  • A good programmer’s editor or IDE.
  • cmake, preferably. Of course, you can use your own preferred make too. CMakeLists.txt files are provided for each project. Examples provided were built using cmake version 2.8.9.
  • Various freely-available third-party libraries are used as the basis for examples in the book. These include:
  • cURL
  • JsonCpp
  • Boost (filesystem, date_time/gregorian, algorithm, assign)

Several examples use the boost headers/libraries. Only one example uses cURL and JsonCpp.

Product Features

  • Pragmatic Bookshelf

Read the Reviews and Check Out The Sale Price HERE!

Thanks for visiting the Magical Traffic Blog


Anonymous on 05/22/2019 at 6:51 AM.

Great book – save time writing unit tests efficiently After working with the basics with Google Test (gtest) and starting to play with Google Mock, I really needed a foundation to build on.I was so excited when I found Jeff’s book on unit testing (TDD) and C++11x along with Google Mock (and Google Test) for C++ based testing.Reading through one of the free chapters was eye opening and providing some great advice on testing.Do as little as possible, even if that means taking shortcuts to write tests faster…

Anonymous on 05/22/2019 at 6:54 AM.

Considerately shortened my learning process I consider myself a pretty decent programmer, but I have been working mostly with languages such as Python, php and Java. Recently I had the opportunity to do a project in C++, and I wanted to do it with the most recent tools, according to best practices and the best methodologies. I knew something about TDD, but had never practiced it in a real project. TDD had some kind of a bed rep, but still I was intrigued. I bought Jeff’s book, and I am extremely glad I did. It hand-held me from the…

Anonymous on 05/22/2019 at 7:01 AM.

Not what I expected – a little disappointed Do not misunderstand me . It is not a bad book, but should be read with critical judgment. I had more expectations of the content of the book and answers to complicated issues with TDD in C++ that were not answered. The solutions were obvious and that is precisely the problems for I want answers and learn about better alternatives.Uncle Bob as indicated in the foreword, the title is not the best. Nor do I agree with the title suggests Robert Martin. The title that best describes it…