- Workshop to learn TDD step-by-step from Saleem Siddiqui 's book :
- Learning Test-Driven Development
- The book explains the different concepts in 3 languages : Go, Python, JS
- Thanks Saleem for your great sharing
- Learning Test-Driven Development
- You will find other languages in this repository :
C#
,java
,scala
,Kotlin
,F#
- I have chosen to make a step-by-step guide from the book in
C#
- I have chosen to make a step-by-step guide from the book in
TDD is a technique borne of a set of beliefs about code :
- Simplicity - the art of maximizing the amount of work not done
- Obviousness and clarity are more virtuous than cleverness
- Writing uncluttered code is a key component of being successful
Test-Driven Development is a way of managing fear during programming - Kant Beck
- TDD is not fundamentally about testing code
- Its purpose :
improve the design and structure of the code
- The Unit Tests that we end up with are an added bonus
- Primary benefit : simplicity of design we get
- In software we can measure simplicity :
- Fewer lines of code per feature
- Lower Cyclomatic Complexity
- Fewer side effects
- Smaller runtime / memory requirements
- TDD forces us to craft the simplest thing that works
- Virtue isn't mystical :
- Using TDD won't cut by half :
- your development time
- the lines of code
- defect count
- It will allow you to arrest the temptation to introduce artificial / contrived complexity
- Using TDD won't cut by half :
TDD increases our confidence in our code :
- Each new test flexes the system in new and previously untested ways
- Over time : the tests suite guards us against regression failures
This is a monorepo containing all the source code for the "Learning Test-Driven Development" book, published by O'Reilly.
- You need to install the runtime environment for the language you prefer use (Go, Python, C#, Scala, JS)
- To understand the evolution and purpose of the code, you need the accompanying book.
-
Follow the instructions for the different steps of this workshop :
-
Each part contains chapters in a step-by-step approach
- At the end of each chapter you will find a
step by step guide
link - It will demonstrate my approach to solve the given problem in
C#
- At the end of each chapter you will find a