My take on a Test Driven Development exercise using a simple billing system feature set.
-
First write a failing test,
-
Then write the minimal feature code to pass the test,
-
Finally refactor and clean up the codebase.
Repeat this till all the features are complete and tested working.
-
Monthly billing
-
Grace period for missed payments (dunning status)
-
Not all customers are subscribers
-
Idle customers should be automatically unsubscribed