Функциональный веб-сервис / тест интеграции с Junit

Вопрос направлен на то, чтобы найти лучшее решение, чем мое.

У меня есть следующие ТРЕБОВАНИЯ для моих интеграционных тестов:

  1. Каждый интеграционный тест реализован в одном тестовом классе.
  2. Методы в тестовом классе должны выполняться по порядку.
  3. Каждый метод является одним из этапов интеграционного / функционального тестирования.
  4. В случае сбоя тестового метода все остальные тестовые методы в тестовом классе должны быть пропущены, поскольку нет смысла искать последующие ошибки.

МОЕ РЕШЕНИЕ выглядит так:

Я просто наследую каждый тестовый класс от моего абстрактного тестового класса:

package myPackage;

import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestWatcher;

public abstract class FailFastTest {

    private final static List<Class<?>> FAILED_CLASSES = new CopyOnWriteArrayList<Class<?>>() ;

    private final Class<? extends FailFastTest> thatClass = this.getClass();

    @Rule
    public final TestWatcher onFailedRule = new TestWatcher() {
        protected void failed(Throwable e, org.junit.runner.Description description) {
            FAILED_CLASSES.add(thatClass);
        };
    };

    @Before
    public final void beforeMethod() {
        final boolean failed = FAILED_CLASSES.contains(thatClass);

        if(failed) {
            System.out.println(thatClass + " FAILED. Aborting test.");
            org.junit.Assume.assumeTrue(!failed);
        }
     }
}

У кого-нибудь есть идея получше? Моя проблема: я не могу запустить такой тестовый класс несколько раз параллельно, потому что имя класса сигнализирует о пропуске...

НЕТ! Это не дубликат! Я пытаюсь написать функциональные тесты, которые используют различные (веб-сервисы) в определенном порядке. Вопрос "Как проверить сервлет?" совсем другое!

Тем не мение. Я переключился на TestNG. TestNG поддерживает все мои требования и работает как шарм. Мне больше не нужен мой клеевой код!:-)

0 ответов

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