Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Chapter 9 TDD clean code book Robert C.Martin
1.
2. THE THREE LAWS OF TDD
• FIRST LAW YOU MAY NOT WRITE PRODUCTION CODE UNTIL YOU HAVE WRITTEN A FAILING UNIT TEST.
• SECOND LAW YOU MAY NOT WRITE MORE OF A UNIT TEST THAN IS SUFFICIENT TO FAIL, AND NOT
COMPILING IS FAILING.
• THIRD LAW YOU MAY NOT WRITE MORE PRODUCTION CODE THAN IS SUFFICIENT TO PASS THE
CURRENTLY FAILING TEST.
3. KEEPING TESTS CLEAN
• “QUICK AND DIRTY”
• TEST CODE DID NOT NEED TO BE WELL DESIGNED AND
THOUGHTFULLY PARTITIONED
• COVERED THE PRODUCTION CODE, IT’S GOOD ENOUGH.
4. KEEPING TESTS CLEAN
• DIRTY TEST WILL BE MAKE YOU SLOWER
• WHEN THE COST OF MAINTAIN A TEST IS MAJOR OF
WRITING A CODE IT IS NOT SUSTAINABLE
• A TEST DESCRIBE A BEHAVIOR IF YOUR TEST IS NOT
UNDERSTANDABLE THE BEHAVIOR IS NOT
UNDERSTANDABLE
10. WHAT MAKES ALL
CODE READABLE ?
• CLARITY
• SIMPLICITY
• AND DENSITY OF EXPRESSION
In a test you want to say a lot with as few
expressions as possible.
11. ONE ASSERT PER TEST • EVERY TEST FUNCTION IN A TEST SHOULD HAVE ONE AND
ONLY ONE ASSERT STATEMENT
• A BETTER RULE IS THAT WE WANT TO TEST A SINGLE
CONCEPT IN EACH TEST FUNCTION.
SINGLE CONCEPT PER TEST
12. KEEP IN MIND F.I.R.S.T.
• FAST TESTS TEST SHOULD RUN QUICKLY. WHEN TESTS RUN SLOWLY, YOU CAN’T RUN THEM
FREQUENTLY. IF YOU DON’T RUN THEM FREQUENTLY, YOU WON’T FIND PROBLEMS EARLY
ENOUGH TO FIX THEM EASILY.
• INDEPENDENT TESTS SHOULD NOT DEPEND ON EACH OTHER
• REPEATABLE TESTS SHOULD BE REPEATABLE IN ANY ENVIRONMENT. YOU SHOULD BE ABLE
TO RUN THE TESTS IN PRODUCTION, QA OR YOUR LAPTOP.
• SELF-VALIDATING TESTS SHOULD HAVE A BOOLEAN OUTPUT. EITHER THEY PASS OR FAIL.
• TIMELY UNIT TESTS SHOULD BE WRITTEN JUST BEFORE THE PRODUCTION CODE THAT
MAKES THEM PASS. IF YOU WRITE TESTS AFTER THE PRODUCTION CODE, THEN YOU MAY
FIND THE PRODUCTION CODE TO BE HARD TO TEST.
I
R
S
F
T
Notes de l'éditeur
The tests
and the production code are written together, with the tests just a few seconds ahead of the
production code.