I can't speak for generics as we are using the IBM 1.3 JRE, but we have been using Emma to start doing our JUnit coverage reports. Maybe check Emma out.
Hamcrest is based on the concept of a matcher, which can be a very natural way of asserting whether or not the result of a test is in a desired state. If you have not used Hamcrest, examples in this ...