Unit test support for Java via reflection and annotations
Viera K. Proulx, Weston Jossey · 2009
Novice Java programmers face great difficulties when learning to design unit tests for any nontrivial cases. Deciding whether the result of a method, or the effect the method produced represents the expected result one must understand the difference between equality based on the values an object represents versus the reference equality (identity) --- and be able to define the correct equals method.