繁体   English   中英

无法从 JUnit 中的 Spring Boot 读取应用程序属性?

[英]Not able to read application properties from Spring Boot in JUnit?

我有一个JUnit测试,我想针对REST服务运行该测试,该服务已在我的机器上的指定端口上运行。 已经用Postman测试了REST服务,它工作正常。

这里的计划是通过在属性文件中将REST URL 外部化来使它们可配置。 因此,我尝试了以下操作,但JUnit类无法读取属性文件值。

商店客户端测试.java

@RunWith(SpringJUnit4ClassRunner.class)
@PropertySource("classpath:application.properties")
public class StoreClientTest {

    private static final String STORE_URI = "http://localhost:8084/hpdas/store";
    private RestTemplate restTemplate;

    @Value("${name}")
    private String name;


    @Before
    public void setUp() {
        restTemplate = new RestTemplate();
    }


    @Test
    public void testStore_NotNull() {
        //PRINTS ${name} instead of abc ?????
        System.out.println("name = " + name);
        assertNotNull(restTemplate.getForObject(STORE_URI, Map.class));
    }


    @After
    public void tearDown() {
        restTemplate = null;
    }

}

src\\test\\main\\resources\\application.properties

name=abc

首先,您需要为测试创建一个应用程序上下文配置

@SpringBootApplication
@PropertySource(value = "classpath:application.properties")
public class TestContextConfiguration {

}

其次,让你的测试类使用这个配置

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = TestContextConfiguration.class)
public class StoreClientTest {

    @Value("${name}")
    private String name;
    // test cases ..
}  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM