Cargando…

TEST DRIVEN DEVELOPMENT WITH C++ a simple guide to writing bug-free agile code /

Learn how to write a simple testing framework and extend it to drive the design of your logging library Key Features Learn how to solve various challenges when testing in C++ with the help of effective solutions Develop a logging library with enhancements Drive better code designs with effective tes...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Tanner, Abdul Wahid (Autor)
Formato: Electrónico eBook
Idioma:Inglés
Publicado: [S.l.] : PACKT PUBLISHING LIMITED, 2022.
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright and Credits
  • Contributors
  • About the reviewer
  • Table of Contents
  • Preface
  • Part 1: Testing MVP
  • Chapter 1: Desired Test Declaration
  • Technical requirements
  • What do we want tests to do for us?
  • What should a test look like?
  • What information does a test need?
  • How can we use C++ to write tests?
  • How will the first test be used?
  • Summary
  • Chapter 2: Test Results
  • Technical requirements
  • Reporting a single test result
  • Enhancing the test declaration to support multiple tests
  • Summarizing the results
  • Redirecting the output results
  • Summary
  • Chapter 3: The TDD Process
  • Technical requirements
  • Build failures come first
  • Do only what is needed to pass
  • Enhancing a test and getting another pass
  • Summary
  • Chapter 4: Adding Tests to a Project
  • Technical requirements
  • How to detect whether a test passes or fails
  • Enhancing the testing library to support assertions
  • Should error cases be tested, too?
  • Summary
  • Chapter 5: Adding More Confirm Types
  • Technical requirements
  • Fixing the bool confirms
  • Confirming equality
  • Decoupling test failures from line numbers
  • Adding more confirm types
  • Confirming string literals
  • Confirming floating point values
  • How to write confirms
  • Summary
  • Chapter 6: Explore Improvements Early
  • Technical requirements
  • Getting line numbers without macros
  • Exploring lambdas for tests
  • Summary
  • Chapter 7: Test Setup and Teardown
  • Technical requirements
  • Supporting test setup and teardown
  • Enhancing test setup and teardown for multiple tests
  • Handling errors in setup and teardown
  • Summary
  • Chapter 8: What Makes a Good Test?
  • Technical requirements
  • Making tests easy to understand
  • Keeping tests focused on specific scenarios
  • Use random behavior only in this way
  • Only test your project
  • Test what should happen instead of how
  • Summary
  • Part 2: Using TDD to Create a Logging Library
  • Chapter 9: Using Tests
  • Technical requirements
  • Why build a logging library?
  • How will TDD help build a logging library?
  • What would the ideal logging library look like?
  • Starting a project using TDD
  • Logging and confirming the first message
  • Adding timestamps
  • Constructing log messages with streams
  • Summary
  • Chapter 10: The TDD Process in Depth
  • Technical requirements
  • Finding gaps in the testing
  • Adding log levels
  • Adding default tag values
  • Exploring filtering options
  • Adding new tag types
  • Refactoring the tag design with TDD
  • Designing tests to filter log messages
  • Controlling what gets logged
  • Enhancing filtering for relative matches
  • When is testing too much?
  • How intrusive should tests be?
  • Where do integration or system tests go in TDD?
  • What about other types of tests?
  • Summary
  • Chapter 11: Managing Dependencies
  • Technical requirements
  • Designing with dependencies