For testing, our group has had some success with JUnit and Mockito. Here is a link to a Mockito answer.
I am not sure if filling with random data will be a meaningful test. Perhaps a more meaningful test would be testing normal, boundary, and error conditions.