Вы можете сделать это с помощью Groovy (метапрограммирование), вам не нужны никакие дополнительные библиотеки. Вот (глупый) пример, который переопределяет Collections.max
так, что он всегда возвращает 42. Запустите этот код в консоли Groovy, чтобы проверить его.
// Replace the max method with one that always returns 42
Collections.metaClass.static.max = {Collection coll ->
return 42
}
// Test it out, if the replacement has been successful, the assertion will pass
def list = [1, 2, 3]
assert 42 == Collections.max(list)
Обновление
Вы упомянули в комментарии, что мое предложение не сработало. Вот еще один пример, который соответствует коду, который вы указали в своем вопросе. Я протестировал его в консоли Groovy, и он работает для меня. Если это не работает для вас, скажите мне, чем ваше тестирование отличается от моего.
Math.metaClass.static.random = {-> 0.5}
assert 0.5 == Math.random()