Video: TDD, Where Did It All Go Wrong - Ian Cooper

TDD, Where Did It All Go Wrong - Ian Cooper




Ian Cooper - TDD, Where Did It All Go Wrong


Trigger for writing test
!= new method
!= new class
= requirement






test api






System Under Test (SUT) != class
Unit test -> exports of module








refactoring = separate implementation detail from things you do need to test


extra






"The word 'test' in TDD confuses people about how to do TDD, when I change it to Behavior, it tends to be better understood"
-- Dan North








todo: re-read 'TDD by example'


design clean api first, then realistic


test is first consumer of your code


unit of isolation = test, not sut










===


RED-GREEN-REFACTOR
1) write test that fails without implementation
2) make test pass asap, sinful, ducttape
line by line
not nice classes, no patterns
speed > design
3) make good code


"""
You can't do 2 things at once easily
- understand the solution to the problem
- engineer the code right
You will either
- over-engineer
- analysis-paralysis
"""


===


CLEAN CODE WHEN






refactoring
don't write tests
private/internal visibility










only in the refactoring step
now I know I need it











===




HEXAGONAL ARCHITECTURE
PORTS AND ADAPTERS


===


GEARS
throw away helping tests with implementation details when implemented


===


ACCEPTANCE TDD
Don't do it
- customers are not interested
- they're expensive
Maybe you need it, because programmer tests don't focus on the gist of the system.


===


MOCKS










===


SUMMARY









comments powered by Disqus