Имеется тестовый класс:
abstract public class AbstractServiceTest {
@Autowired
private Environment environment;
boolean isJdbc() {
return Arrays.asList(environment.getActiveProfiles()).contains("jdbc");
}
@ClassRule
public static ExternalResource summary = TimingRules.SUMMARY;
@Rule
public Stopwatch stopwatch = TimingRules.STOPWATCH;
@Rule
public ExpectedException thrown = ExpectedException.none();
public <T extends Throwable> void validateRootCause(Runnable runnable, Class<T> exceptionClass) {
try {
runnable.run();
Assert.fail("Expected " + exceptionClass.getName());
} catch (Exception e) {
Assert.assertThat(getRootCause(e), instanceOf(exceptionClass));
}
}
}
Имеется класс-наследник, в котором нужно проигнорировать один тест при условии isJdbc():
public abstract class AbstractMealServiceTest extends AbstractServiceTest {
@Autowired
protected MealService service;
@Test
public void createWithException() throws Exception {
Assume.assumeFalse(isJdbc());
validateRootCause(() -> service.create(new Meal(null, of(2015, Month.JUNE, 1, 18, 0), " ", 300), USER_ID), ConstraintViolationException.class);
validateRootCause(() -> service.create(new Meal(null, null, "Description", 300), USER_ID), ConstraintViolationException.class);
validateRootCause(() -> service.create(new Meal(null, of(2015, Month.JUNE, 1, 18, 0), "Description", 9), USER_ID), ConstraintViolationException.class);
validateRootCause(() -> service.create(new Meal(null, of(2015, Month.JUNE, 1, 18, 0), "Description", 5001), USER_ID), ConstraintViolationException.class);
}
}
Как избежать прохождение теста при выполнении условия
Assume.assumeFalse(isJdbc());
без появления ошибки
org.junit.AssumptionViolatedException: got: <false>, expected: is <true>?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости