Тесты, которые расширяют junit.framework.TestCase
, рассматриваются бегуном JUnit4 в стиле JUnit3. См. исходный код для AllDefaultPossibilitiesBuilder
для получения более подробной информации.
Вы можете заставить JUnit4 обрабатывать классы, расширяющие TestCase
, как тесты в стиле JUnit4, аннотируя классы @RunWith(JUnit4.class)
, но вы почти наверняка не хотите этого делать. Если вы сделаете это, ваши тестовые классы по-прежнему будут наследовать все методы из junit.framework.TestCase
, но эти методы не будут вызываться. Другими словами, вы бы унаследовали много беспорядка.
Наследование часто является плохим способом обмена кодом, даже в тестах. Если возможно поместить общий код в другой класс и делегировать его непосредственно из тестовых классов, сделайте это.
Если вы используете JUnit 4.7 или более позднюю версию, Правила предоставляют другой способ обмена кодом. Правила могут быть затронуты или могут повлиять на поведение теста.
В очень редких случаях общий код, необходимый для нескольких тестовых классов JUnit4, может совместно использоваться в Runner, но, поскольку тестовый класс может указывать только одного бегуна, у бегунов есть много тех же недостатков, что и у базовых классов.