могут ли быть параметры метода - методом?
есть некий класс,XYZ, в нем есть boolean методы, с разными входными параметрами.
Нужно написать класс, например Test, который тестирует методы из XYZ. В нем должен быть метод к примеру, Status(метод_из_XYZ() ).
Возможно ли такое в яве?
После проведения теста этот метод должен выдавать также, с каким методом метод_из_XYZ() он был вызван.
Подскажите, как это можно реализовать
Спасибо за ответы
Я так понимаю что возвращают боолеан?
Можно ли както уникализировать их входные параметры?
Сколько раз в процесе теста вызывается один метод?
Передать сам метод как параметр нельзя.
Но тем не менне можно найти более менее елегантный выход.
Например можно передавать название метода как строчку и для его вызова пользоваться рефлексией.
Менне елегантно по количеству кода, но более быстро и с проверкой на уровне компиляции - можно написать простенький интерфейс и передавать в тестирующий метод екземпляр анонимного класса который и будет звать нужный тестируемый метод.
Обясните пожалуйста поставленую задачу лутше и дайте хотябы желаемые интерфейсы классов тестируемого и тесирующего (последний приблизительно, так как именно о нем вы и спрашиваете :) )
Он хочет делегаты (сделать колбэк функцию). Насколько я знаю их в Джаве нет.
В принципе то что хочет сделать топикстартер можно выполнить посредством отражения.
Ето мы понять могем :).
Колбек функций в Джаве действительно нет, зато есть класы с колбек функциями (Листенеры).
Ничего в них особенного нет. Просто поддержка некого интерфейса извесного тому кто позовет етот колбек. Но ето на уровне инстансов, а не названий методов.
Поетому и прошу детальнее описать задачу. Тогда можно думать оправдано ли использовать отражение (рефлексию) или может лутше прорефакторить код и сехать с колбека на уровне метода к колбеку на уровне класса - к листенерам (что было бы очень желательно ибо не вписывается в концепцыю Джавы) или, возможно, можно написать промежуточный листенер.
Вариантов как минимум 3 и хз какой выбрать.
Особенно интересует как едет процес тестироования? Ето JUnit?. Какой примерно код теста?