"The title of this section, begs another question: "Why
do I care?" One answer is that Unit testing is a best practice that
has been evolving toward its current form over most of the time
that programming has existed. Another answer is that the core
principles of Unit testing are just good sense; it might actually
be a little embarrassing to our community as a whole that it took
us so long to recognize them.
"Alright, so what is Unit testing? In its most fundamental form,
Unit testing can be defined as testing the smallest meaningful
pieces of code (such pieces are called units), in such a way that
each piece's success or failure depends only on itself. For the
most part, we've been following this principle already.
"There's a reason for each part of this definition: we test the
smallest meaningful pieces of code because, when a test fails, we
want that failure to tell where the problem is us as specifically
as possible. We make each test independent because we don't want a
test to make any other test succeed, when it should have failed; or
fail when it should have succeeded. When tests aren't independent,
you can't trust them to tell you what you need to know."