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...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
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