У меня была следующая версия теста в JUnit 3, и я попытался преобразовать ее в JUnit 4, без успеха. Идея состоит в том, чтобы иметь базовый тестовый пример, который выполняет фактический тест интерфейса, скажем, интерфейс Service
. Я хочу проверить класс ServiceImpl
, используя базовый тестовый пример.Junit 3 to JUnit 4 conversion
public abstract class ServiceBaseTest extends TestCase { protected Service service; protected abstract Service getService(); @Override public void setUp() { service = getService(); } public void testMethod(){ //test code } ... }
ServiceImplTest
класс как:
public class ServiceImplTest extends ServiceBaseTest { @Override public void setUp() { service = new ServiceImpl(); } }
Я знаю, что я могу удалить расширение TestCase
и использовать @BeforeClass для метода setup
. Но разница в том, что @BeforeClass
требует, чтобы метод setup
был static
. Это сложно для меня, так как я не могу ставить getService()
, потому что это противоречило бы ключевому слову abstract
.
Question:
Является ли чистый способ реализации альтернативы, используя JUnit 4?
@ Перед выполнением перед каждым испытанием @Test. Я просто хочу настроить Сервис один раз. – walters
в JUnit3, setUp() также вызывается перед каждым тестом. Если вы хотите, чтобы getService() вызывается только один раз, вы можете сохранить результат вызова в статическом поле – NamshubWriter