
Examine the implementation-first approach, where developers build behavior before tests, risking over-implementing, long feedback loops, and tests that reflect the code rather than guarding edge cases and core business requirements.
Practice test-driven development by building a bill generator for books and board games, applying 20% off books, 25% off board games over 200, plus 10% extra.
Explore triangulation as a test-driven technique to drive implementation and determine the correct bill for orders of books with a 20% discount through multiple tests.
In test driven development, obvious implementation and triangulation are both effective techniques; choose based on confidence, practice both, and switch gears automatically as you gain expertise.
Learn test-driven development by replacing constants with variables to implement a 10% discount on bills over 200. Use faked values, duplication refactoring, and green tests to guide the change.
Apply the replace constants with variables technique and know when it's helpful, then revert changes that break tests to bring them back to green.
TDD prompts you to focus on business requirements and edge cases, using every test to clarify the expected behaviors rather than diving into implementation.
Test driven development emphasizes testing from a user’s perspective by validating public methods instead of private ones, avoiding testing private methods and reducing interface complexity.
The course is designed to help understand how to practice Test Driven Development (TDD). It is a software development approach that emphasizes thinking or writing tests before implementing a solution.
The course covers several key techniques like Obvious Implementation, Triangulation and Replace constants with variables to help apply TDD in a systematic approach. Additionally, there are detailed sections about what is Red Green Refactor cycle and how to best utilize these phases to align with business requirements and to improve the code quality. The course also covers why to practice TDD when there are other existing approaches to software development.
It is a short course and focuses primarily on test driven development and not on the very details of testing, like how to write better acceptance tests, integration tests or unit tests. Also the course doesn't get into deep discussions on testing frameworks or tools as such, for example there will be no discussion on different types of assertions or mocking techniques in testing. It is very important to know that the course focus is on test driven development, but to learn specific testing frameworks in specific languages this course is not the right choice.
In the end, learners will understand that TDD is a mindset that is worth practicing and how to effectively apply it in day to day software development.