В Java у вас обычно есть интерфейс или общий суперкласс, который определяет обязательные члены.Затем вы можете выполнить тестирование с помощью assertTrue(a instanceof SomeClass)
. Обратите внимание, что этот тест не пройден, даже если возвращаемые объекты имеют требуемые члены, но не реализуют / не расширяют SomeClass.
Если вы хотите / должны работать с полями, вы можете использоватьотражение проверить наличие полей и типа там.
Третьей альтернативой может быть использование языка, подобного groovy, для вашего теста.Это позволит вам написать код, обращающийся к коду, независимо от того, есть он на самом деле или нет.По крайней мере, я думаю, что это должно быть возможно, но так как я никогда не работал с Groovy, я не могу предоставить какие-либо подробности.
Чтобы выбрать правильный подход, возникает вопрос: как клиентский код получает доступ кполя / членов.Ваши тесты должны использовать тот же подход.