I've said plenty of times in the past that the tests you
write become excellent documentation which can be used to demonstrate how
different aspects of your system should be used. This is very useful for
someone joining a project. If it is well-documented in its tests, learning how
to work with the code is as easy as reading through the tests and seeing how
the different objects are intended to interact. If you can't do this, you're
probably not testing well.
A good measure of your application's testing is to have
someone learn to use the system based solely on the tests. If the tests are
written well enough, someone will be able to figure out how everything works
This is one of my primary goals when testing an application.
I want to make sure that things are clear, because when I come back to this
code a month from now I will be that new developer on the project. I will need
to know how to use the classes, interfaces, etc. and having it documented in
working cases goes a long way.