Here is the link of the unit test function I added to the project1 application: https://github.com/ECE444-2023Fall/project-1-web-application-design-group9-netninjas/blob/b332a9cf68f215153178a8a372f780af93f84792/tests/app_test.py#L68C1-L92C1
Pros and Cons of TDD:
Pros of Test-Driven Development (TDD):
-
Improved Code Quality: TDD promotes clean, maintainable code.
-
Early Issue Detection: Bugs are caught early, reducing later fixes.
-
Enhanced Collaboration: TDD fosters communication among team members.
-
Better Design: It encourages thoughtful code structure.
-
Regression Testing: Ensures existing features remain functional.
Cons of Test-Driven Development (TDD):
-
Learning Curve: TDD can be challenging to learn.
-
Time-Consuming: Initial test writing can seem time-intensive.
-
Maintenance Overhead: Tests need updates as requirements change.
-
No Silver Bullet: Doesn't guarantee a bug-free application.
-
Discipline Required: Developers must adhere to TDD practices.
-
Testing Known Behavior: May miss unexpected issues or edge cases.
In short, TDD offers code quality, early issue detection, and better collaboration but comes with a learning curve, time overhead, and maintenance requirements. Its effectiveness depends on the project and team.