Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > JUnit & annotation


Автор: SatanClaus 31.1.2008, 18:53
Здравствуйте, есть такая вот проблема.
В тесте используется класс AbstractTransactionalDataSourceSpringContextTests для работы с БД, который в конечном итоге наследует методы TestCase (JUnit). Мне, можете считать это моей личной прихотью, хочется использовать аннотации JUnit.
Но, когда я переименовую метод из testMethod() на @Test Method(), у меня пишется, что нет ни одного метода для теста.
Если не екстендить класс AbstractTransactionalDataSourceSpringContextTests, тогда весь проект не будет работать.
Вопрос, можно ли совместно использовать TestCase и аннотации JUnit?
Спасибо  smile 

Автор: powerOn 31.1.2008, 18:59
А какая версия JUnit используется?

Автор: SatanClaus 1.2.2008, 14:06
Что-то из JUnit4 или старше. Аннотации там использовать можно. Вот только тест мой наследует спринговский класс AbstractTransactionalDataSourceSpringContextTests, который работает с транзакциями. Он в конечном итоге наследует класс TestCase. Но, как я понял, чтоб использовать аннотации, я не должен наследовать класс TestCase.
Например, есть класс
Код

public class someClass extends TestCase{

  public void testSome(){
     int i = 2;
     assertTrue(i == 2);
  }

}

В данном случае тест проходит успешно. Но если я переименую метод и поставлю аннотацию, тогда у меня возникнет ошибка, типа тестовый метод не найдет:
Код

public class someClass extends TestCase{

  @Test
  public void _Some(){
     int i = 2;
     assertTrue(i == 2);
  }

}

Чтоб моя аннотация сработала, мне нужно избавиться от TestCase
Код

public class someClass{ // extends TestCase{

  @Test
  public void _Some(){
     int i = 2;
     assertTrue(i == 2);
  }

}

Теперь код прекрасно работает и тест выполняется. Но....
В моем случае нельзя отказываться от класса AbstractTransactionalDataSourceSpringContextTests, так как тест у меня проверяет запись и поиск значений в БД, которые тестирует вышеупомянутый спринговский класс.

Но с аннотациями работать намного удобнее, потому хотелось бы использовать их вместе с TestCase, если это возможно  smile 

Автор: powerOn 3.2.2008, 00:09
посмотри вот на http://dmy999.com/article/21/adapting-a-springs-junit-3x-base-classes-to-junit-4 статью, похоже там над такой же проблемой думают.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)