Pages: 366
Published: October 2013
ISBN: 9781937785482
In Print
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++.
PDF for desktop/tablets
epub for Apple Books, e-readers
mobi for Kindle readers
Get all eBook formats here for $28.95 (USD)
Order via Bookshop (U.S. Only)
Please support indie bookstores!
Find indie bookstores in the U.S. Find indie bookstores around the world.
This is the only comprehensive treatment on TDD in C++ that 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:
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++ .
Why did you write Modern C++ Programming with Test-Driven
Development?
I’d been working with a number of C++ development teams recently that
were very interested in using test-driven development (TDD) to get their
source under control and whip it into a better shape. I thought, “If any
language needs a way to safely accommodate continual, incremental
change, it’s C++ .” There’s a dearth of material written on TDD in
C++ , and I figure I’d see what I could do to help.
Aren’t you being a bit bold with that book title?
Thanks for noticing. Sure, TDD isn’t the only way to do things, but I
believe it’s the best technique we have in 2013 to help you succeed with
programming, whether your language is C++ or something else. " Modern
C++ " to me is about harnessing the great power of the language
(including some nice, new C++11 features) with a mechanism that will
allow you to do so safely and help you to craft a great design along the
way.
If I already know TDD, what might I get out of this book?
I wanted Modern C++ Programming with Test-Driven Development to be the
most up-to-date, comprehensive source of information on TDD. It covers
just about everything you might expect, and adds a few up-to-date topics
such as the Mikado Method and the Transformation Priority Premise (TPP).
I incorporate my experiences throughout, so you’ll get a bunch of
hard-won wisdom based on having practiced TDD for over a dozen years.
You’ll also pick up some ideas for growing and sustaining TDD in your
team.
Is the TDD material in the book book accessible to someone who isn’t
familiar with C++ ?
While there’s plenty of code in the book, you should have no trouble
following the examples if you’ve had any exposure to a C-based
object-oriented language (such as Java, C#, or Objective-C). One of the
goals in TDD is to structure your code to be expressive, and I strove to
ensure the code in the book met that goal. I focus on TDD concepts and
techniques that you can apply equally well to other languages.
What if I use a different unit testing tool?
The exercises use a mix of Google Test/Google Mock and CppUTest.
However, once you’ve seen a couple unit testing tools, you’ve seen them
all—it’s pretty easy to translate tests written in one tool into
another (such as CppUnit, CxxTest, or Boost.Test). In the book, you’ll
find an appendix that gives you some criteria to help you choose an
appropriate unit testing tool for your team.
Several examples use the boost headers/libraries. Only one example uses
cURL and JsonCpp.
Resources
Releases:
PDF for desktop/tablets
epub for Apple Books, e-readers
mobi for Kindle readers
Get all eBook formats here for $28.95 (USD)
Order via Bookshop (U.S. Only)
Please support indie bookstores!
Find indie bookstores in the U.S. Find indie bookstores around the world.
Pages: 366
Published: October 2013
ISBN: 9781937785482
Edition: 1
In Print