Java 在单元测试中找不到文件
我使用的是spring boot 1.4.4,我有一个测试类,如:Java 在单元测试中找不到文件,java,unit-testing,spring-boot,Java,Unit Testing,Spring Boot,我使用的是spring boot 1.4.4,我有一个测试类,如: @RunWith(SpringRunner.class) @ActiveProfiles("test") @SpringBootTest(classes = {ConfigurableEnvironment.class, SecurityContextUtils.class}) @WebAppConfiguration public class ConfigurationControllerImplTest { pri
@RunWith(SpringRunner.class)
@ActiveProfiles("test")
@SpringBootTest(classes = {ConfigurableEnvironment.class, SecurityContextUtils.class})
@WebAppConfiguration
public class ConfigurationControllerImplTest {
private MockMvc mockMvc;
@Autowired
private ConfigurableEnvironment environment;
@Autowired
private SecurityContextUtils securityContextUtils;
@Before
public void setup() throws Exception {
mockMvc = MockMvcBuilders.standaloneSetup(new ConfigurationControllerImpl(environment, securityContextUtils)).build();
}
@Test
public void getConfigField() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.post("/v1/conf/app/prop1")).andExpect(status().isOk());
}
}
这是我的申请表。yml:
---
wo:
ui.config.wo:
path: "file:/conf.json"
spring:
profiles: test
application.yml读取良好,我将值存储在字符串路径值中,conf.json位于/src/main/resources和/src/test/resources中
但当我这样做时:MAPPER.readTree(新URL(路径));我得到一个错误:找不到文件
我尝试过:“classpath:/config.json”file://config.json仅“config.json”
有什么想法吗?那么“classpath:config.json”呢
另外,我建议通过在application.yml中提供一个指向resources文件夹的资源路径使其更具可配置性,但以后可以更改。对于类路径,我得到:java.net.MalformedURLException:未知协议:类路径不使用URL,而是使用文件或更好的路径,但我不认为地图绘制者获取路径是一种输入。谢谢@Florian。问题是测试的spring上下文没有url处理程序,所以我将url修改为ResourceLoader,然后是ResourceLoader.getResource(路径)。