Несколько тестов 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 иметь правильное поведение.

Другие вопросы по тегам