Time: Friday at 1400 ET (Check TD calendar and invite yourself)
Exercise: Pink Ribbon Good contributions
Organizers: Steve Jackson and Andrew Walker
A weekly hour-long session where we TDD "like we mean it". Often in client work I find myself taking shortcuts and skipping ahead to a design in my head. This is an opportunity to practice back to basics TDD:
- Write exactly one new test, the smallest test you can that seems to point in the direction of a solution
- See it fail
- Make the test from (1) pass by writing the least implementation code you can in the test method.
- Refactor to improve the design. Be strict - only refactor on green and make simple steps so the tests stay green. Your pair will keep you honest.
Again to reiterate - this is practice and hopefully fun, we're not trying to ship 60 requirements in 60 minutes. The conversation will likely be the most interesting part of this. The constraints exist to enable our creativity.
You might need:
- A github account
- VSCode with the LiveShare extension https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack
- A replit.com account (can be linked through github)
If the numbers permit, we'll do a mob programming style.
I found this to keep the order: https://mobti.me/td. We'll start with strong pairing with these roles:
- Driver: Focuses on translating what the navigator says into code
- Navigator: Directs the design/focus of the driver speaking at whatever level of abstraction the driver needs given their familiarity with the editor/code/etc ("semicolon at the end of line 4" vs "we need a function that sorts the list")
- Mob: Advises the navigator, thinks about the higher level direction, edge cases, etc.
Source: https://github.com/testdouble/tdd-corner/tree/main/telephone-keypad
Source: https://github.com/testdouble/tdd-corner/tree/main/tdd-me-plz
Source: https://github.com/testdouble/tdd-corner/tree/main/todo-react
Source: https://adventofcode.com/2020/day/1
Replit: https://replit.com/@stevenjackson2/tdd-corner#advent2020
Replit Invite: (On request)