Is there any way of replacing the logic within a private method when running a JUnit test?
A bit of background: we have some private methods which interact with bundles within an OSGi container. This is not available in the unit test therefore the methods will fail.
We have looked at JMockIt but the method replace functionality seems to want to force you to replace all the methods in the class which call one another.
The implementation would be something like this:
public final doSomething() {
firstThing();
secondThing();
}
private firstThing() {
// normal code
}
private secondThing() {
// code which is unavailable in a unit test
}
And the unit test would specify the new implementation of secondThing():
// replace secondThing() in impl with this secondThing()
private secondThing() {
// dummy code
}
// run tests