I'm writing integration test for my spring boot application but when I try to override some properties using @TestPropertySource, it's loading the property file defined in the context xml but it's not overriding the properties defined in the annotation.
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {DefaultApp.class, MessageITCase.Config.class})
@WebAppConfiguration
@TestPropertySource(properties = {"spring.profiles.active=hornetq", "test.url=http://www.test.com/",
"test.api.key=343krqmekrfdaskfnajk"})
public class MessageITCase {
@Value("${test.url}")
private String testUrl;
@Value("${test.api.key}")
private String testApiKey;
@Test
public void testUrl() throws Exception {
System.out.println("Loaded test url:" + testUrl);
}
@Configuration
@ImportResource("classpath:/META-INF/spring/test-context.xml")
public static class Config {
}
}
I tested this feature with Spring Boot 1.4 Line below works pretty well
@TestPropertySource(properties = { "key=value", "eureka.client.enabled=false" })
Nevertheless new @SpringBootTest annotation is working as well
@RunWith(SpringRunner.class)
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
properties = { "key=value", "eureka.client.enabled=false" }
)
public class NewBootTest {
@Value("${key}")
public String key;
@Test
public void test() {
System.out.println("great " + key);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With