Re: c++ class design: where to put debug purpose utility class?
James Kanze wrote:
On Jun 29, 4:10 pm, "Phlip" <phlip2...@gmail.com> wrote:
Kanze is a classically-trained "unit tester". In some circles
"unit" is a QA concept - specifically, if a test fails, you
only need to inspect one unit.
[...]
That's not really TDD. You start at the test, and write each
test case to illustrate one aspect of your target class.
Which, of course, isn't true, because until you have at least
some idea as to what the class is to do, you can't write the
tests. You start by determining what the class is to do (in
most cases, that means some high level design). You don't start
by just typing in code, whether it is a test or anything else.
(I find it very hard to conceive that in this day and age,
people are still suggesting that we code before we think. And
proposing it as a silver bullet, no less.)
Some people do, actually. :-)
However it depends on how religious you are, and how strictly you want
to follow the dogmas.
If you just want to be able to say that you do TDD, you can start out
with the single test case
assert(false);
This will surely fail, and you are then free to start coding your
design. Just remember to compiler often, and make sure that the test
still fails!
Eventually, you will "discover" that the fault is not in your code,
but in the test case. Then it is time to "refine" the tests. If you
just don't call them unit tests, but use cases, you're done.
Instant TDD(tm).
Bo Persson