test starter run example annotation java spring junit spring-boot

java - starter - spring test



@Value "No se pudo resolver el marcador de posiciĆ³n" en Spring Boot Test (2)

Necesitas agregar

@PropertySource ("classpath: application.properties")

a su clase, por lo que elegirá sus configuraciones normales.

Si necesita diferentes configuraciones para la prueba puede agregar

@TestPropertySource (locations = "classpath: test.properties")

Si no es así, simplemente copie y pegue su archivo de configuración en la carpeta de test/resources , entonces booteará desde allí.

Ver this

Quiero tomar una prueba de Junit para Spring-boot como se muestra a continuación:

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {ApplicationTest.class}) public class TestOnSpring { @Value("${app.name}") private String appName; @Test public void testValue(){ System.out.println(appName); } }

y ApplicationTest.java como este

@ComponentScan("org.nerve.jiepu") @EnableAutoConfiguration() public class ApplicationTest { public static void main(String[] args) { SpringApplication.run(ApplicationTest.class, args); } }

y mi POM asi

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.0.BUILD-SNAPSHOT</version> </parent>

Cuando ejecuto la prueba, tengo debajo de la información de error

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder ''app.name'' in string value "${app.name}" at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174) at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:204) at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:178) at org.springframework.context.support.PropertySourcesPlaceholderConfigurer$2.resolveStringValue(PropertySourcesPlaceholderConfigurer.java:172) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:807) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1027) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:543) ... 31 more

Pero cuando ejecuto esta aplicación como una aplicación Java normal

@SpringBootApplication public class Application { public static void main(String[] args){ SpringApplication.run(Application.class, args); } }

¡Funciona bien!

¿Qué tiene de malo? ¿Cómo debo tomar la prueba junit con Spring-boot? ¡Muchas gracias!