Исходя из вашего последнего абзаца, вы пытаетесь внедрить некоторые «дополнительные методы» в модульное тестирование, поскольку вы уже тестируете определенный класс. Я не знаю ни одного жгута для тестирования, который бы позволял вам прикреплять тесты на основе иерархии классов.
Однако, с вашим собственным предложением использовать TestNG для создания чего-то подобного, я думаю, вы могли бы быть очень близки. Вы могли бы очень хорошо включить некоторый базовый код, который добавляет ваш класс в список «тестовых классов по умолчанию», которые, в свою очередь, тестируются, если они реализуют определенный интерфейс.
Тем не менее, что касается общего случая, я думаю, что вам не повезло, поскольку система типов Java односторонняя, вы можете только (легко) узнать, какие интерфейсы реализует класс, а не наоборот. Кроме того, проблема заключается в том, «где перестать искать»: если у вас есть тест, который проверяет все ваши comparable
реализаторы, хотите ли вы, чтобы он также проверял достоверность одного из String
, поскольку он есть в вашей среде Java