Practice Red-Green-Refactor: Discount Calculation
Introduction to Practice
Welcome to your first lesson in this course dedicated to practicing Test Driven Development (TDD) using Java and JUnit. Test Driven Development is an effective approach that emphasizes writing tests before coding. This methodology helps you design your application with testing as a core element, ensuring each component behaves as expected. In this lesson, you'll learn the fundamentals of TDD along with the Red-Green-Refactor cycle, understanding their roles in creating robust and maintainable code.
This course involves hands-on practice, where you'll receive requirements through tests incrementally. Your task is to implement code that makes each test pass, mirroring a real-world TDD environment. Consider this course guide as your pair programmer, providing you with test-driven prompts to enhance your skills as you advance.
Understanding the Red-Green-Refactor Cycle
As a reminder, the Red-Green-Refactor cycle is central to TDD, guiding your development process:
- Red: Start by writing a failing test to define the next step.
- Green: Implement just enough code to pass the test, focusing on functionality.
- Refactor: Optimize the code for clarity and efficiency without changing its behavior.
Requirements for calculateDiscount Function
Below, you’ll find the detailed requirements and corresponding test cases for the calculateDiscount function.
Each requirement focuses on a specific behavior the function must fulfill, guiding you through the TDD process step by step.
1. Correct Discount Application
- Description: The function must correctly apply a percentage-based discount to an original price.
- Test Case:
The test ensures that the function applies the discount correctly and tolerates minor floating-point deviations.Java
