Почему мой бин нулевой? - PullRequest
       6

Почему мой бин нулевой?

0 голосов
/ 17 ноября 2010

Я пытаюсь узнать, как использовать applicationContext.Моя цель - поменять хранилище фиктивных данных на реальное при использовании моих модульных тестов.Я не хочу делать это явно, я хочу сделать это с помощью внедрения зависимостей.

Итак, в качестве простого теста перед тем, как усложнить задачу, я просто пытаюсь получить компонент из моего applicationContext.XML.Из того, что я прочитал, это должно работать:

@ContextConfiguration(locations = "/applicationContext.xml")
public class ResultsListTests {

     @Resource
     CompanyResult resultBean;

     @Test
     public void shouldAddResults() {
         assertEquals(resultBean.getCompanyName(), "Microsoft");

Но мой resultBean всегда равен нулю.Вот мое applicationContext.xml, которое находится в WebContent / WEB-INF:

<?xml version="1.0" encoding="UTF-8"?>
<beans>
    <bean id="resultBean" name="resultBean" class="com.trgr.cobalt.company.domain.CompanyResult">
        <property name="companyName">
            <value>Microsoft</value>
        </property>
     </bean>
</beans>

Так почему мой resultBean всегда равен нулю?Что я сделал неправильно?

1 Ответ

1 голос
/ 17 ноября 2010

Вам не хватает аннотации @RunWith(SpringJUnit4ClassRunner.class):

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/applicationContext.xml")
public class ResultsListTests {

     @Resource
     CompanyResult resultBean;

     @Test
     public void shouldAddResults() {
         assertEquals(resultBean.getCompanyName(), "Microsoft");
     }
}

BTW , в вашем примере WebContent/WEB-INF не является подходящим местом для applicationContext.xml.

Если вы укажете @ContextConfiguration(locations = "/applicationContext.xml"), тогда Spring будет искать applicationContext.xml в корне пути к классам, а не в WebContent/WEB-INF (jUnit на 100% не знает, что это веб-приложение).

Для получения дополнительной информации см. Пружинная справочная документация .

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