У меня есть то, что составляет легкую тестовую структуру, написанную как JUnit Abstract test. Я бы хотел, чтобы каждый из подклассов реализации определял их собственную настройку тестового класса. Мой план состоял в том, чтобы абстрактный суперкласс определял метод @BeforeClass
, который вызывает абстрактный метод настройки, который каждый подкласс должен был бы определить, но это не так, поскольку методы @BeforeClass
должны быть статическими, а статические методы не могут быть абстрактными и не могут вызвать экземпляр методы.Обеспечение того, что тест подкласса JUnit переопределяет метод @BeforeClass
Я мог бы просто предположить, что подклассы будут выполнять настройку, включив то, что требуется в документации, или бросая IllegalStateException
, но мне бы очень хотелось, чтобы это можно было обеспечить на уровне интерфейса по ряду причин. Может ли кто-нибудь подумать об этом?
Кстати, у меня была та же проблема с параметризацией этих тестов (подклассы определяют параметры, но @Parameters
аннотированные методы должны быть статическими). Я обошел это, работая с третьей стороной JUnitParams, которая позволяет параметры уровня метода. Посмотрите здесь: https://github.com/Pragmatists/JUnitParams
Вам требуется, чтобы этот вызов вызывался только один раз или его можно было запустить несколько раз? – dkatzel
Только один раз с каждым тестовым классом. Я могу запустить его для каждого метода тестирования, используя @Before, но это было бы расточительно. – user1919883