Интеграционное тестирование в Spring: TestContext Framework, Spring JUnit 4 Rules
Пакет org.springframework.test.context.junit4.rules предоставляет следующие JUnit 4 Rules (поддерживаются в JUnit 4.12 и выше):
- SpringClassRule
- SpringMethodRule
SpringClassRule - это JUnit TestRule, который поддерживает функции уровня класса Spring TestContext Framework, тогда как SpringMethodRule - это JUnit MethodRule, который поддерживает функции уровня экземпляра и уровня метода Spring TestContext Framework.
В отличие от SpringRunner, поддержка JUnit на основе правил Spring имеет то преимущество, что не зависит от какой-либо реализации org.junit.runner.Runner и, следовательно, может быть объединена с существующими альтернативными runner (такими как JUnit 4 Parameterized) или сторонними runner (например, MockitoJUnitRunner).
Чтобы поддерживать полную функциональность TestContext framework, вы должны объединить SpringClassRule с SpringMethodRule. В следующем примере показан правильный способ объявления этих правил в интеграционном тесте:
// Опционально можно указать
// не-Spring Runner через @RunWith(...)
@ContextConfiguration
public class IntegrationTest {
@ClassRule
public static final SpringClassRule springClassRule = new SpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
@Test
public void testMethod() {
// тестовая логика...
}
}
Читайте также:
- Интеграционное тестирование в Spring: TestContext Framework, Spring JUnit 4 Runner
- Интеграционное тестирование в Spring: TestContext Framework, конфигурация скриптов с @SqlConfig
- Интеграционное тестирование в Spring: TestContext Framework, параллельное выполнение тестов
Комментарии
Отправить комментарий