/30DaysOfTDD

Repository to commit code related to 30DaysOfTDD tutorial

Primary LanguageJavaApache License 2.0Apache-2.0

30DaysOfTDD

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)