Repository to commit code related to 30DaysOfTDD tutorial
- What is TDD?
- Showing the following properties that a unit test must have: Targeted, Isolated, Repeatable & Predictable and Independent
- Test DRIVEN Development
- Emphasizes the DRIVEN part of the development by saying that tests must come first all the time
- Why should I use TDD?
- Showing main motivations to use TDD like large code coverage, less bugs, more quality.
- What is OOP? (Oriented Object Programming)
- Use Class and Objects to model real world objects
- Major tenets: Encapsulation, Inheritance, Polymorphism (Interfaces)
- Getting Setup
- Setting environment: Visual Studio + NUnit (C#), Eclipse + JUnit (Java)
- Create a Solution/Project and a Test Project
- Writing the Test
- Arrange, Act and Assert concepts (AAA)
- Write the logic Class for previous made tests that don't pass
- Write another tests and make it pass
- SOLID concept
- Single Responsibility Principle
- Open/Close Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
- Decoupling component with DI
- Factories that instanciate objects to be used on Components
- Frameworks for DI (like Ninject)