Are you doing test first anyway? Or in some cases you are doing some coding and then writing your tests to make sure code works? As for me I prefer to create a class. Sure, during class creation I think about its interface and how to test the class. But I dont write testing code first. Do you write it first? Do you think you should always write test code first?
Are you doing test first anyway? Or in some cases you are doing some
Share
I’m not a purist in this matter (TDD involves more than just writing the tests first, it’s also about initially writing very minimal, “hard coded” tests and refactoring them a lot — see The Book by The Master himself).
I tend to test-first when I’m doing incremental development to add a feature to an existing module, and I insist on test-first when the incremental development I’m doing is to fix a bug (in the latter case I absolutely want a unit-test AND an integration-test that both reproduce the bug, before I fix the code that caused the bug).
I tend to be laxer when I’m doing “greenfield” development, especially if that’s of an exploratory, “let’s see what we can do here that’s useful”, nature — which does happen, e.g. in data mining and the like — you have a somewhat vague idea that there might be a useful signal buried in the data, some hypothesis about its possible nature and smart ways to [maybe] extract it — the tests won’t help until the exploration has progressed quite a bit.
And, once I start feeling happy with what I’ve got, and thus start writing tests, I don’t necessarily have to redo the “exploratory” code from scratch (as I keep it clean and usable as I go, not too hard to do especially in Python, but also in R and other flexible languages).