Преобразование Junit 3 в JUnit 4

У меня была следующая версия теста в JUnit 3, и я попытался преобразовать ее в JUnit 4, но безуспешно. Идея состоит в том, чтобы иметь базовый тестовый пример, который выполняет фактическую проверку интерфейса, скажем, Service interface. Я хочу протестировать класс ServiceImpl, используя базовый тестовый пример.

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?


person walters    schedule 01.10.2010    source источник


Ответы (1)


Вы не можете просто использовать аннотацию @Before?

person PaulJWilliams    schedule 01.10.2010
comment
@Before будет выполняться перед каждым @Test. Я просто хочу один раз настроить Сервис. - person walters; 01.10.2010
comment
в JUnit3 setUp () также вызывается перед каждым тестом. Если вы хотите убедиться, что getService () вызывается только один раз, вы можете сохранить результат вызова в статическом поле. - person NamshubWriter; 24.10.2010