diff --git a/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunner.java b/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunner.java index b7ca5f5152..cedefb547b 100644 --- a/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunner.java +++ b/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunner.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -264,7 +264,7 @@ public class FilteredClassPathRunner extends BlockJUnit4ClassRunner { @Override public Class loadClass(String name) throws ClassNotFoundException { - if (name.startsWith("org.junit")) { + if (name.startsWith("org.junit") || name.startsWith("org.hamcrest")) { return this.junitLoader.loadClass(name); } return super.loadClass(name); diff --git a/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunnerTests.java b/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunnerTests.java index 73ef93cb80..ff461a4e0d 100644 --- a/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunnerTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunnerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,13 @@ package org.springframework.boot.testutil; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.CoreMatchers.isA; /** * Tests for {@link FilteredClassPathRunner} @@ -33,6 +36,9 @@ public class FilteredClassPathRunnerTests { private static final String EXCLUDED_RESOURCE = "META-INF/services/" + "javax.validation.spi.ValidationProvider"; + @Rule + public ExpectedException thrown = ExpectedException.none(); + @Test public void entriesAreFilteredFromTestClassClassLoader() { assertThat(getClass().getClassLoader().getResource(EXCLUDED_RESOURCE)).isNull(); @@ -44,4 +50,10 @@ public class FilteredClassPathRunnerTests { .getResource(EXCLUDED_RESOURCE)).isNull(); } + @Test + public void testsThatUseHamcrestWorkCorrectly() { + this.thrown.expect(isA(IllegalStateException.class)); + throw new IllegalStateException(); + } + }