ApplicationContext.getAppContext (). GetBean ("jBeanName") возвращает нуль в тесте Junit - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть этот простой класс, помеченный @Configuration

@ConfigurationProperties("sample")
@Configuration
public class Sample {

    private String username;
    private String password;
    private String url; 

//Implementation }

. Чтобы получить файл bean-компонентов моего веб-приложения, я создал этот класс

@Component
public class AppSpringContext implements ApplicationContextAware {

    private static ApplicationContext context;

    /**
     * Returns the Spring managed bean instance of the given class type if it exists.
     * Returns null otherwise.
     *
     * @param
     * @return
     */
    @Override
    public void setApplicationContext(ApplicationContext context) throws BeansException {

        // Store ApplicationContext reference to access required beans later on
        AppSpringContext.context = context;
    }

    public static ApplicationContext getAppContext() {
        return context;
    }

}

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

@RunWith(SpringJUnit4ClassRunner.class)
public class SampleTest {



    private Sample getInstance(Sample cfg) {

        if (cfg == null) {
            cfg = (Sample) AppSpringContext.getAppContext().getBean("sample"); //returns  NULL object
        }
        return cfg; }

//Rest of  implementation

}

Любая помощь, plzz ??

1 Ответ

0 голосов
/ 07 апреля 2020

изменение @ConfigurationProperties("sample") @Configuration

...