Не удается загрузить свойства контекста в тесте Spring Boot - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь написать тест для метода, который использует атрибуты, определенные в application.properties, но кажется, что контекст Spring не может быть загружен в тесте.

MyProperties.java

@Configuration
@PropertySource("classpath:application.properties")
@ConfigurationProperties(prefix = "test")
public class MyProperties {

    private String name;
    private String gender;
    private String age;

    public String getInformation(){
        return name + gender + age;
    }
} 

application.properties

test.name=JASON
test.gender=MALE
test.age=23

Test.java

@RunWith(SpringRunner.class)
@SpringBootTest
public class Test {

    @Autowired
    private MyProperties myProperties;

    @Test
    public void getInformation(){
        assertEquals("JASONMALE23", myProperties.getInformation());
    }
}

Результат этого теста nullnullnull , кто-нибудь может подсказать, как решить эту проблему?

1 Ответ

0 голосов
/ 15 января 2019

@ConfigurationProperties требуются как получатели, так и установщики для полей, представляющих свойство. Вы не объявили их в своем коде, поэтому Spring Boot считает, что нет никаких свойств для внедрения.

Добавить недостающие методы:

@Configuration
@PropertySource("classpath:application.properties")
@ConfigurationProperties(prefix = "test")
public class MyProperties {

  private String name;
  private String gender;
  private String age;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getGender() {
    return gender;
  }

  public void setGender(String gender) {
    this.gender = gender;
  }

  public String getAge() {
    return age;
  }

  public void setAge(String age) {
    this.age = age;
  }

  public String getInformation(){
    return name + gender + age;
  }

} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...