Если я использую Supplier
в сочетании с Suppliers::memoize(Supplier<T> delegate)
, что это лучший способ проверить его?Лучший способ проверить поставщика Guava
Например, у меня есть следующий:
private static final Supplier<String> ENVIRONMENT_SUPPLIER = Suppliers.memoize(new Supplier<String>() {
@Override
public String get() {
String value = "";// actually something time consuming
return value;
}
});
Самые очевидный способ мне кажется, чтобы извлечь Поставщик в свой собственный (внутренний) класс и проверять. По какой-то причине это кажется мне немного уродливым и будет выглядеть немного глупо, когда я, наконец, перейду на Java 8.
Благодарим за отзыв. Я действительно сделал небольшую ошибку с исходным вопросом, а '' 'ENVIRONMENT_SUPPLIER''' на самом деле уже является закрытым пакетом и аннотируется с помощью' '' @ VisibleForTesting'', чтобы обозначить, что он определен только таким образом для тестирование. Я действительно хотел знать, было ли лучше проверить бизнес-логику в '' '' 'Поставщике'', а не выдать его другому классу, но я думаю, что нет. спасибо! –
Я не понимаю, почему вам нужно извлечь его в другой класс. Если ваша проблема заключается в том, что результат «memoized» объявляет не memoized экземпляр «Поставщика» в качестве собственного поля и проверяет это. –
Извлекая его на свой собственный класс, это то, что я имел в виду. –