JUnit: есть ли способ пропустить тест, принадлежащий родителю класса Test? - PullRequest
1 голос
/ 11 февраля 2011

У меня есть два класса:

public abstract class AbstractFoobar { ... }

и

public class ConcreteFoobar extends AbstractFoobar { ... }  


У меня есть соответствующие тестовые классы для этих двух классов:

public class AbstractFoobarTest { ... }

и

public class ConcreteFoobarTest extends AbstractFoobarTest { ... }


Когда я запускаю ConcreteFoobarTest (в JUnit), аннотированные методы @Test в AbstractFoobarTest запускаются вместе с методами, объявленными непосредственно в ConcreteFoobarTest, поскольку они наследуются.

Есть ли способ их пропустить?

Ответы [ 3 ]

1 голос
/ 11 февраля 2011

Во-первых, вам действительно не нужно AbstractFoobarTest, потому что в конце концов вы не можете создать экземпляр абстрактного класса, поэтому вы все равно будете полагаться на свой конкретный класс для проверки своего абстрактного класса.

Это означает, что вы в конечном итоге будете использовать ConcreteFoobarTest для тестирования API из абстрактного класса. Таким образом, у вас будет только это: -

public class ConcreteFoobarTest  { ... 
   @Test
   public void testOne() {
      ConcreteFoobar cf = new ConcreteFoobar();
      // assert cf.conreteAPI();
   }

   @Test
   public void testTwo() {
      ConcreteFoobar cf = new ConcreteFoobar();
      // assert cf.abstractClassAPI();
   }
}
1 голос
/ 11 февраля 2011

Обновление: неправильно понял вопрос

  1. Сделать AbstractFoobarTest рефератом. Таким образом, методы испытаний в AbstractFoobarTest только запускаются один раз, когда ConcreteFoobarTest казнены. Вам понадобится конкретный подкласс для проверки методы в AbstractFoobar все равно.
  2. Или просто убери наследство между AbstractFoobartest и ConcreteFoobarTest. Ты не хочешь все равно использовать это.
0 голосов
/ 11 февраля 2011

Использование тегов процесса позволит вам столкнуться с конкретными телами кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...