Как прочитать файл свойств весенней загрузки в методе класса обслуживания, вызываемом модульным тестом - PullRequest
0 голосов
/ 14 января 2019

У меня есть приложение весенней загрузки. Я хочу написать некоторый модульный тест для методов в классе обслуживания. Я могу загрузить переменную окружения и получить свойства в классе модульного тестирования, но не могу сделать это в классе обслуживания. Среда в классе обслуживания всегда равна нулю при достижении этого из модульных тестов. Это работает при достижении его из приложения.

SomethingServiceTest.java

@RunWith(SpringRunner.class)
@DataJpaTest
@TestPropertySource(value = "/application.properties")
public class SomethingServiceTest {

     private ISomethingService m_SomethingService;

     @PostConstruct
     public void setup() {
        m_SomethingService = new SomethingService();
        m_SomethingService.setSomethingRepository(somethingRepository);
        // somethingRepository is mocked class, probably not important
     }

    @Test
    public void test_somethingMethod() {
         System.out.println(env.getProperty("some.property"));
         //env here is full and i get wanted property
         m_uploadService.doSomething();
    }

ISomethingService.java

public interface ISomethingService {
    doSomething();
}

SomethingService.java

@Service
public class SomethingService implements ISomethingService {

    @Value("${some.property}")
    private String someProperty;

    private ISomethingRepository somethingRepository;

    @Autowired
    public ISomethingRepository getSomethingRepository() {
        return somethingRepository;
    }

    public void setSomethingRepository(ISomethingRepository p_somethingRepository) {
        somethingRepository = p_somethingRepository;
    }

    @Autowired
    private Environment env;

    @Override
    @Transactional
    public String doSomething(){
        System.out.println(env.getProperty("some.property"));
        //env is null here
        return someProperty;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...