Java JUnit application.properties始终返回null
我正在尝试为@Service注释类编写单元测试。我有application.properties文件集和一个类来访问这些值Java JUnit application.properties始终返回null,java,spring-boot,junit5,Java,Spring Boot,Junit5,我正在尝试为@Service注释类编写单元测试。我有application.properties文件集和一个类来访问这些值 @Component @ConfigurationProperties @PropertySource("classpath:application.properties") public class ApplicationProperties { private String first_name; private String last_name;
@Component
@ConfigurationProperties
@PropertySource("classpath:application.properties")
public class ApplicationProperties {
private String first_name;
private String last_name;
private String base_url;
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String firstName) {
this.first_name = firstName;
}
public String getLast_name() {
return last_name;
}
public void setFirst_name(String lastName) {
this.last_name = lastName;
}
public String getBase_url() {
return base_url;
}
public void setBase_url(String baseUrl) {
this.base_url = baseUrl;
}
}
我写的测试是这样的
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = { ApplicationProperties.class })
@TestPropertySource(locations="classpath:application.properties")
public class ServiceTests {
@Autowired
private ApplicationProperties applicationProperties;
@Before
private void initializeConfig() {
Mockito.when(applicationProperties.getFirst_name()).thenReturn("Karan");
}
@Test
public void sample_Test() {
MyService myService = new MyService();
String fName = myService.getUserFirstName();
assertEquals(fName, "Karan");
}
}
@Service
public class MyService {
@Autowired
private ApplicationProperties applicationProperties;
public String getUserFirstName() {
return applicationProperties.getFirst_name();
}
}
方法myService.getUserFirstName如下
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = { ApplicationProperties.class })
@TestPropertySource(locations="classpath:application.properties")
public class ServiceTests {
@Autowired
private ApplicationProperties applicationProperties;
@Before
private void initializeConfig() {
Mockito.when(applicationProperties.getFirst_name()).thenReturn("Karan");
}
@Test
public void sample_Test() {
MyService myService = new MyService();
String fName = myService.getUserFirstName();
assertEquals(fName, "Karan");
}
}
@Service
public class MyService {
@Autowired
private ApplicationProperties applicationProperties;
public String getUserFirstName() {
return applicationProperties.getFirst_name();
}
}
我试着按照本文和中提供的方法,以及stackoverflow问题。但它在getUserFirstName方法中始终具有applicationProperties对象null,并引发null值异常
任何关于我做错了什么的建议
您是否尝试创建一个
测试/资源
目录,并将应用程序的测试副本。属性
?这可能会根据您的设置而起作用。@Gavin,如更新的图像所示添加了该文件,但仍然为空。请阅读本文