У меня есть эта настройка (упрощенная):
import java.util.function.Function;
public class Foo {
Bar bar;
void myMethod() {
final Function<String, String> reference;
if (...)
reference = String::toLowerCase;
else
reference = String::toUpperCase;
this.bar.otherMethod(reference);
}
}
class Bar {
void otherMethod(final Function<String, String> transform) {
/* ... */
}
}
Я хотел бы проверить поведение "myMethod".
Я попытался имитировать экземпляр bar
, вызовите myMethod
метод и verify(bar).otherMethod(expectedReference)
К сожалению, этот подход не работает, в основном потому, что - как описано в { ссылка } - ссылка на метод компилируется в новый экземпляр анонимного класса.
Есть ли другой способ проверить, что правильная ссылка была передана на bar.otherMethod(...)
? Имейте в виду, что myMethod не вызывает саму ссылку (ни otherMethod
... переменная передается для 2-3 вложенных вызовов).