TestSuite JUnit → Каждый TestCase имеет те же @Before и т.д.

Я просто пишу тесты Selenium WebDriver som с помощью JUnit 4.

Контрольные случаи сгруппированы JUnit TestSuite. Каждый тестовый пример (тестовый класс) имеет тот же @Rule @BeforeTest @AfterTest

Как я могу реализовать это в JUnit TestSuite, так что у меня нет одинакового кода для @Rule, @BeforeTest и @AfterTest в каждом тестовом случае (классе)?

//edit: возможно, я определяю абстрактный класс testcase, который я расширяю от каждого тестового примера?

1 ответ

Вы можете объединить код @Rule, @BeforeTest и @AfterTest в одно правило.

public class TheMergedRule implements TestRule {
 private final TestRule theCurrentRule = ...

 public Statement apply(final Statement base, final Description description) {
 return new Statement() {
 theCodeOfBefore();
 theCurrentRule.apply(base, description);
 theCodeOfAfter();
 }
 }

 public void theCodeOfBefore() {
 ...
 }

 public void theCodeOfAfter() {
 ...
 }
}

licensed under cc by-sa 3.0 with attribution.