I am working on a presentation about the ‘Single Responsibility Principle’, based on my previous post.
It take most of my time.
In the meantime, I want to share a sample code of how I use to test inner fields in my classes.
I am doing it for a special case of testing, which is more of an integration test.
In the standard unit testing of the dependent class, I am using mocks of the dependencies.
- All of the fields (and dependencies in our classes are private
- The class do not have getters for its dependencies
- We wire things up using Spring (XML context)
- I wan to verify that dependency interface A is wired correctly to dependent class B
One approach would be to wire everything and then run some kind of integration test of the logic.
I don’t want to do this. It will make the test hard to maintain.
The other approach is to check wiring directly.
And for that I am using reflection.
Below is a sample code of the testing method, and the usage.
Notice how I am catching the exception and throws a RuntimeException in case there is a problem.
This way, I have cleaner tested code.