3 ms·
> TDD is about designing how a module is going to be used before actually implementing it. This. Basically, TDD is exactly the same as BDD, only with a develop
by BerislavLopac 5y ago
> TDD is about designing how a module is going to be used before actually implementing it.
This. Basically, TDD is exactly the same as BDD, only with a developer-oriented (as opposed to product-oriented), traditional assertion syntax.
- pydry 5y agoBDD is more about having conversations about behavior with stakeholders using examples. If it's translated into tests it becomes ATDD. These make excellent tests which catch bugs and provide a safety harness for refactoring. It is the sole place where "TDD" actually shines. Lower level TDD that isnt about that at all are where all the problems are (including, frequently, driving poor design).
- flavius29663 5y ago> driving poor design Would you care to expand on that? Let's say you are doing a classicist style TDD, where you try to mock at the highest level you can (files, network, UI) and then just exercise all the classes in between until you reach your target piece of code. Can you give me examples of TDD producing a bad design? I can see how a mockist approach, where you mock everything for each function you test, can be detrimental very quickly. But I have the feeling I'm mastering the classicist approach, and I don't see how tests can negatively impact design.
- pydry 5y agoSee "Test Induced Design Damage" by David Heinemeier Hanson.