Class ReflectionTestUtils


public abstract class ReflectionTestUtils extends Object
ReflectionTestUtils is a collection of reflection-based utility methods for use in unit and integration testing scenarios.

There are often times when it would be beneficial to be able to set a non-public field, invoke a non-public setter method, or invoke a non-public configuration or lifecycle callback method when testing code involving, for example:

  • ORM frameworks such as JPA and Hibernate which condone the usage of private or protected field access as opposed to public setter methods for properties in a domain entity.
  • Spring's support for annotations such as @Autowired, @Inject, and @Resource which provides dependency injection for private or protected fields, setter methods, and configuration methods.
  • Use of annotations such as @PostConstruct and @PreDestroy for lifecycle callback methods.

In addition, several methods in this class provide support for static fields and static methods — for example, setField(Class, String, Object), getField(Class, String), invokeMethod(Class, String, Object...), invokeMethod(Object, Class, String, Object...), etc.

Sam Brannen, Juergen Hoeller
See Also: