I used to write a single test case (in test case management DB) that only say "execute the unit tests and check for any failures" (and a preparation step: check-out unit test code from location:bla-bla). TC is then used to create run-logs as evidence of unit test execution and to refer defects from - for statistics.
?:the art of a constructive conflict perceived as a destructive diagnose.
The complexity of unit testing depends entirely on the complexity of the code to be tested. For something that is simple mathematics you can use boundary testing rules. For something that acts based on specific ranges you need to test for all unique range boundaries. You have good and bad outcoms depending on whether you are within those boundaries or not, and you may have to be very careful that an at boundary test goes the right way. Also, there may be interaction between any number of input data that need to be tested using pairs or triplets (etc.) for which unique inputs are required. That is where a test harness makes it convenient to predefine a series of tests that can be automatically executed on demand (see the JUnit testing model for examples).