Есть ли способ заменить логику в закрытом методе при запуске теста JUnit?
Немного предыстории: у нас есть несколько частных методов, которые взаимодействуют с пакетами в контейнере OSGi. Это недоступно в модульном тесте, поэтому методы не пройдут.
Мы рассмотрели JMockIt, но функциональность замены метода, кажется, хочет заставить вас заменить все методы в классе, которые вызывают друг друга.
Реализация будет выглядеть примерно так:
public final doSomething() {
firstThing();
secondThing();
}
private firstThing() {
// normal code
}
private secondThing() {
// code which is unavailable in a unit test
}
И в модульном тесте будет указана новая реализация secondThing ():
// replace secondThing() in impl with this secondThing()
private secondThing() {
// dummy code
}
// run tests