Самый простой способ - извлечь значение заранее и передать его при необходимости.
void someMethod(Data data,SomeProperty dynamicProperty){
if( dynamicProperty whatever)
// Do Something
}
тогда ваш код вызова становится:
SomeProperty dynamicProperty = DynamicProperty.getValue("OK");
someMethod(data, dynamicProperty);
таким образом, вы на самом деле не сильно меняетесь, вы получаете динамическое свойство именно тогда, когда вам нужно, поэтому вам не нужно беспокоиться об этой части, и теперь вы можете легко протестировать свой метод.
В основном это называется функциональным кодированием, вы удаляете зависимости и передаете данные только методу, что означает, что метод теперь освобождается от зависимостей и может быть легко протестирован путем введения любых значений, которые вы хотите.
Если у вас больше этих значений, я бы создал отдельный класс и сгруппировал их все в одном месте, создал бы интерфейс из него, передал это в конструктор класса и затем работал с ним таким образом. Я, вероятно, не сделал бы это только для одного значения, если только это действительно не упрощает ваш код.