• 1 The goal
  • 2 The idea
  • 3 TDD Examples
    • 3.1 Reasons to study
    • 3.2 Introduction: Installing Nix
    • 3.3 Codility: How TDD can help you get a job
    • 3.4 C: Keep an IP address up to date
    • 3.5 Code reviews: How TDD can help you get that PR merged
    • 3.6 LaTeX: Testing your package
    • 3.7 Python: Upload JPG files back to camera after modification
      • 3.7.1 Init a project with Uv
    • 3.8 How NOT to do TDD
    • 3.9 The missing ingredient of TDD
  • 4 Related sources
  • 5 Intro to Small Hacks
    • 5.1 What it’s all about
    • 5.2 Organization of content
    • 5.3 Enjoy your hacking
    • 5.4 Principles
    • 5.5 Features
  • 6 Technologies
    • 6.1 Bash: Get improvement suggestions for your code
    • 6.2 Bash: Manage and interconnect programs
      • 6.2.1 Basic script architecture
      • 6.2.2 Getting help
      • 6.2.3 History search
      • 6.2.4 Instantly clean all content
      • 6.2.5 Set path for new panes to current tab
      • 6.2.6 Splitting windows
      • 6.2.7 Connecting to Wi-Fi
      • 6.2.8 Cat
      • 6.2.9 Show an image
      • 6.2.10 Redirect command output
      • 6.2.11 List file users
      • 6.2.12 Time a command
      • 6.2.13 Print file contents into a pipeline
      • 6.2.14 Conditional variable set
      • 6.2.15 Round a number to integer in Bash
      • 6.2.16 Enable command tab completion
      • 6.2.17 Run function in a sub-shell by default
      • 6.2.18 Literate shell scripting
      • 6.2.19 Unit-testing Bash scripts
      • 6.2.20 Returning a parameter from a lambda function
      • 6.2.21 Change a string in a file
      • 6.2.22 Redirect stdout to a file
      • 6.2.23 Design complex text pipelines in a fast feedback loop
      • 6.2.24 Find duplicate files
      • 6.2.25 Clean up a string in the clipboard
      • 6.2.26 Tunnel via SSH
    • 6.3 SSH
      • 6.3.1 Share a remote terminal session with a friend
    • 6.4 Git: Track code changes
      • 6.4.1 Quick demo / Getting started
      • 6.4.2 Tracking changes in files
      • 6.4.3 Reset repo to exactly match the origin branch
      • 6.4.4 Summarize changes from last tag
      • 6.4.5 Find the branch you worked on last
    • 6.5 GitLab
      • 6.5.1 Start with CI in GitLab
      • 6.5.2 Establish a remote repo from the local terminal
    • 6.6 Linux
      • 6.6.1 Documentation
      • 6.6.2 Development
      • 6.6.3 Operations
    • 6.7 Python
      • 6.7.1 New virtual dev environment
      • 6.7.2 Accepting input from stdin in Python
      • 6.7.3 Parallel execution
      • 6.7.4 Asynchronous programming
      • 6.7.5 TDD
    • 6.8 System configuration management
      • 6.8.1 Nix - Pure
      • 6.8.2 Chef - Test-driven
    • 6.9 Windows
    • 6.10 Docker
      • 6.10.1 Run builds in Docker as non-root
      • 6.10.2 Review running containers
      • 6.10.3 Clean up
      • 6.10.4 History
    • 6.11 Machine Learning
      • 6.11.1 Track model versions: DVC (Data Version Control)
    • 6.12 Ghost
    • 6.13 Haskell
      • 6.13.1 Packaging
      • 6.13.2 Getting started
      • 6.13.3 IO
      • 6.13.4 TempateHaskell
      • 6.13.5 Practical use examples
    • 6.14 C++
      • 6.14.1 Lint
      • 6.14.2 Run file as script
      • 6.14.3 CMake
      • 6.14.4 Tail-call optimization
    • 6.15 HTML
    • 6.16 JavaScript
      • 6.16.1 Loading modules
      • 6.16.2 Writing reusable functions
      • 6.16.3 Promises
      • 6.16.4 Composing your software
      • 6.16.5 Managing depencencies
      • 6.16.6 Updating a package to the newest version
      • 6.16.7 Test headlessly
      • 6.16.8 Track events in Web JS functions from Bash
      • 6.16.9 Preview JSON data
      • 6.16.10 Tweak code performance
      • 6.16.11 Authenticate clients to a server
      • 6.16.12 Serve file content via HTTP
    • 6.17 Embedded devices
      • 6.17.1 Connect with a device via UART
      • 6.17.2 Write image to an SD card
      • 6.17.3 Writing an image to an SD card
      • 6.17.4 Generate a true random number
  • 7 Disciplines
    • 7.1 Keeping focus on results
      • 7.1.1 Qutebrowser
      • 7.1.2 Firefox
      • 7.1.3 Fetch Web information through your terminal
      • 7.1.4 Web browsers
      • 7.1.5 Filter copycat websites from search results
      • 7.1.6 Smartphone SSH access
    • 7.2 Nature
      • 7.2.1 Euler’s identity
      • 7.2.2 The Dirac Delta equation
      • 7.2.3 Gravity of a photon
      • 7.2.4 Weather forecasting
      • 7.2.5 Greek alphabet
      • 7.2.6 Calculus
    • 7.3 Mind: Develop better as a programmer
      • 7.3.1 Retype instead of copy-pasting
      • 7.3.2 Assume responsibility
      • 7.3.3 Ignitory question
      • 7.3.4 Specify clear goals
      • 7.3.5 Make growth a daily routine
      • 7.3.6 Understand what school is ‒ and what it isn’t
    • 7.4 Software Engineering
      • 7.4.1 Pragmatic Programmer’s Highlights
      • 7.4.2 Tools - greatest version from all modules
      • 7.4.3 Languages
      • 7.4.4 Design patterns
      • 7.4.5 Architectural patterns
    • 7.5 Development Operations (DevOps)
      • 7.5.1 The Joel Test
      • 7.5.2 Testing configuration
    • 7.6 Data analysis
      • 7.6.1 Habits of highly effective data scientists
    • 7.7 Team work
      • 7.7.1 Communication
      • 7.7.2 Satellite telecommunications
      • 7.7.3 Licensing
      • 7.7.4 Documentation
    • 7.8 Crop video losslessly
    • 7.9 Habits of highly effective learners
    • 7.10 UI design
    • 7.11 First year of studies
      • 7.11.1 Notes
      • 7.11.2 Git
      • 7.11.3 Markdown
      • 7.11.4 Deep work
      • 7.11.5 How this relates to work
      • 7.11.6 Contribute before you feel ready
      • 7.11.7 Don’t let studies interfere with your development
    • 7.12 Publishing
      • 7.12.1 English language
  • 8 Techniques
    • 8.1 Patterns for success
      • 8.1.1 The Lazy Perfectionist
      • 8.1.2 The Benevolent Tyrant
      • 8.1.3 The Earth and Sky
      • 8.1.4 The Open Door
      • 8.1.5 The Laughing Clown
      • 8.1.6 The Mindful General
      • 8.1.7 The Social Engineer
      • 8.1.8 The Constant Gardener
      • 8.1.9 The Rolling Stone
      • 8.1.10 The Pirate Gang
      • 8.1.11 The Flash Mob
      • 8.1.12 The Canary Watcher
      • 8.1.13 The Hangman
      • 8.1.14 The Historian
      • 8.1.15 The Provocateur
      • 8.1.16 The Mystic
    • 8.2 Object-Oriented Patterns
      • 8.2.1 Command-Query Separation
    • 8.3 TDD: Producing reliable software
    • 8.4 Functional programming
    • 8.5 Troubleshooting
    • 8.6 System modeling and analysis
    • 8.7 Competitive Programming
      • 8.7.1 Challenges
      • 8.7.2 Resources
      • 8.7.3 Levels
    • 8.8 Data Science for team physics exploration
  • 9 Other languages
    • 9.1 Java
    • 9.2 Scheme
  • 10 The Web
  • 11 Gotchas
  • 12 Quotes
    • 12.1 Why not TDD
  • 13 Stories
    • 13.1 Thanks

TDD Examples

4 Related sources

  1. “Test Driven Development: By Example 1st Edition” 4, Kent Beck

  1. https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530↩︎