我有一个JUnit
测试,我想针对已经在指定端口的计算机上运行的REST
服务运行。已经用Postman
测试了REST
服务,并且工作正常。
此处的计划是通过在属性文件中外部化 URL 来使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 ..
}