Java JUnit application.properties始终返回null

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;

我正在尝试为@Service注释类编写单元测试。我有application.properties文件集和一个类来访问这些值

@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,如更新的图像所示添加了该文件,但仍然为空。请阅读本文