Несколько тестов JUnit с использованием FEST
Я написал несколько тестовых методов JUnit для тестирования моего Java Swing GUI (используя FEST). Мой класс в следующем формате:
public class Tests
{
@BeforeClass
public static void beforeClass() throws Exception { ... }
@Before
public void before() throws Exception { ... }
@After
public void after() throws Exception { ... }
@AfterClass
public static void afterClass() throws Exception { ... }
@Test
public void testA() { ... }
@Test
public void testB() { ... }
@Test
public void testC() { ... }
}
Когда я запускаю этот класс в Eclipse, он запускает только тест testA, а не testB или testC. Если я закомментирую testA, запускается testB - так что, кажется, каждый раз просто запускаю первый тест.
JUnit в Eclipse показывает "Runs: 2/3" после того, как он завершил первый тест, но не продвигается дальше или показывает ошибки.
Я что-то не так делаю? Я использую JUnit 4.8.1 и FEST 1.2.
2 ответа
Я подозреваю, что у вас есть побочный эффект в testA
это блокирует код в testB
от бега. Трудно сказать, что происходит без подробностей в testA
а также testB
, но я могу дать вам общее руководство.
Вы хорошо начали, комментируя testA
, Когда вы сделаете это, сделайте оба testB
а также testC
бежать?
Попробуйте сверлить в testA
и медленно комментируя детали в том, что под testA
пока вы не выполните оба теста testA
а также testB
, Сделав это, вы хотя бы знаете, в чем проблема.
Например, если ваш код выглядит примерно так:
public void testA() {
doX();
doY();
doZ();
// Assert stuff
...
}
закомментируйте все после doX()
и посмотрим, что получится. Если это работает, тогда раскомментируйте doY()
и посмотрим, что получится. Если это не сработало, то углубиться в doX()
и начните комментировать и снова запускать тесты.
Это должно помочь вам точно определить, где что-то идет не так. Если вы все еще озадачены, когда понимаете это, вернитесь и задайте вопрос по этим деталям.
Удачи в поиске вашей ошибки!
Кажется, ваш фрагмент кода в порядке.
Вы можете проверить, если каждый метод @Test независим от других, каждый метод теста не должен иметь общий контекст. обеспечивать @Before
а также @After
иметь правильное поведение.