
Modern C++ Programming with Test-Driven Development
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Cover
- Table of Contents
- Foreword
- Introduction
- But Can It Work for Me on My System?
- Who This Book Is For
- What You'll Need
- How to Use This Book
- About "Us"
- About Me
- About the C++ Style in This Book
- Acknowledgments
- Dedication
- 1. Global Setup
- Setup
- The Examples
- C++ Compiler
- CMake
- Google Mock
- CppUTest
- libcurl
- JsonCpp
- rlog
- Boost
- Building Examples and Running Tests
- Teardown
- 2. Test-Driven Development: A First Example
- Setup
- The Soundex Class
- Getting Started
- Fixing Unclean Code
- Incrementalism
- Fixtures and Setup
- Thinking and TDD
- Test-Driving vs. Testing
- What If?
- One Thing at a Time
- Limiting Length
- Dropping Vowels
- Doing What It Takes to Clarify Tests
- Testing Outside the Box
- Back on Track
- Refactoring to Single-Responsibility Functions
- Finishing Up
- What Tests Are We Missing?
- Our Solution
- The Soundex Class
- Teardown
- 3. Test-Driven Development Foundations
- Setup
- Unit Test and TDD Fundamentals
- The TDD Cycle: Red-Green-Refactor
- The Three Rules of TDD
- Getting Green on Red
- Mind-Sets for Successful Adoption of TDD
- Mechanics for Success
- Teardown
- 4. Test Construction
- Setup
- Organization
- Fast Tests, Slow Tests, Filters, and Suites
- Assertions
- Inspecting Privates
- Testing vs. Test-Driving: Parameterized Tests and Other Toys
- Teardown
- 5. Test Doubles
- Setup
- Dependency Challenges
- Test Doubles
- A Hand-Crafted Test Double
- Improving Test Abstraction When Using Test Doubles
- Using Mock Tools
- Getting Test Doubles in Place
- Design Will Change
- Strategies for Using Test Doubles
- Miscellaneous Test Double Topics
- Teardown
- 6. Incremental Design
- Setup
- Simple Design
- Where Is the Up-Front Design?
- Refactoring Inhibitors
- Teardown
- 7. Quality Tests
- Setup
- Tests Come FIRST
- One Assert per Test
- Test Abstraction
- Teardown
- 8. Legacy Challenges
- Setup
- Legacy Code
- Themes
- The Legacy Application
- A Test-Driven Mentality
- Safe Refactoring to Support Testing
- Adding Tests to Characterize Existing Behavior
- Sidetracked by the Reality of Legacy Code
- Creating a Test Double for rlog
- Test-Driving Changes
- A New Story
- A Brief Exploration in Seeking Faster Tests
- Mondo Extracto
- Spying to Sense Using a Member Variable
- Spying to Sense Using a Mock
- Alternate Injection Techniques
- Large-Scale Change with the Mikado Method
- An Overview of the Mikado Method
- Moving a Method via Mikado
- More Thoughts on the Mikado Method
- Is It Worth It?
- Teardown
- 9. TDD and Threading
- Setup
- Core Concepts for Test-Driving Threads
- The GeoServer
- Performance Requirements
- Designing an Asynchronous Solution
- Still Simply Test-Driving
- Ready for a Thready!
- Exposing Concurrency Issues
- Creating Client Threads in the Test
- Creating Multiple Threads in the ThreadPool
- Back to the GeoServer
- Teardown
- 10. Additional TDD Concepts and Discussions
- Setup
- TDD and Performance
- Unit Tests, Integration Tests, and Acceptance Tests
- The Transformation Priority Premise
- Writing Assertions First
- Teardown
- 11. Growing and Sustaining TDD
- Setup
- Explaining TDD to Nontechies
- The Bad Test Death Spiral, aka the SCUMmy Cycle
- Pair Programming
- Katas and Dojos
- Using the Code Coverage Metric Effectively
- Continuous Integration
- Deriving Team Standards for TDD
- Keeping Up with the Community
- Teardown
- A1. Comparing Unit Testing Tools
- Setup
- TDD Unit Testing Tool Features
- Notes on Google Mock
- Notes on CppUTest
- Other Unit Testing Frameworks
- Teardown
- A2. Code Kata: Roman Numeral Converter
- Setup
- Let's Go!
- Practice Makes Perfect
- Teardown
- A3. Bibliography
- Index
- - A -
- - B -
- - C -
- - D -
- - E -
- - F -
- - G -
- - H -
- - I -
- - J -
- - K -
- - L -
- - M -
- - N -
- - O -
- - P -
- - Q -
- - R -
- - S -
- - T -
- - U -
- - V -
- - W -
- - Z -
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.