【问题标题】:Concordion class cannot call service bean NullPointerExceptionConcordion 类无法调用服务 bean NullPointerException
【发布时间】:2016-08-05 11:22:59
【问题描述】:

Concordion 类无法调用服务 bean NullPointerException

ConcordionFixture 类是:

@RunWith(ConcordionRunner.class)
@ContextConfiguration(locations = "file:src/main/webapp/WEB-INF/spring/root-context.xml")

@ContextConfiguration(locations = "/test-config.xml")
public class SplittingNamesFixtureTest {

@Autowired
UserController service;

public UserController user = new UserController();

@Test
public void testDisplayAddress() {
    String res = "Hajar";
    String pren = service.getPrenom();
    assertTrue(pren.compareTo(res) == 0);
}


@Before
public String giveNom(){
    String pren = service.getPrenom();
    return pren;
}


public Result split(String fullName) {
        Result result = new Result();
        String[] words = fullName.split(" ");
        result.firstName = words[0];

        String pren = service.getPrenom();
        result.lastName = pren;

        return result;
    }

    class Result {
        public String firstName;
        public String lastName;
    }


    public String getGreeting() {


       return "Hello World!";
    }
   }

和:test-config.xml

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="IgnoreUnresolvablePlaceholders" value="True"></property>
    <property name="locations">
        <list>
<!--                <value>classpath:test.properties</value> -->

            <!-- List other property files here -->
            <!-- value>mail.properties</value -->
        </list>
    </property>
    </bean>



<bean class="fr.teamnet.spec.UserController"></bean>
<bean class="fr.teamnet.service.UserServiceImpl"></bean>
</beans>

而 UserController.java 是:

@ContextConfiguration(locations = "/test-config.xml")
public class UserController {

@Autowired
UserService userservice;

public String getPrenom(){

    return userservice.findByUserName();
 }

 }

问题是:Concordion 类不能一直调用服务 bean NullPointerException 在 SplittingNamesFixtureTest 类行中:String pren = service.getPrenom();返回NullPointerExeption

【问题讨论】:

    标签: javascript java spring concordion


    【解决方案1】:

    Concordion 不提供原生 Spring 支持。您将需要一个自定义的 Concordion Spring Runner,例如 https://github.com/chiknrice/concordion-spring-runner

    这可能会随着 JUnit 5 的支持而改变。见http://concordion.org/integrations/java/markdown/#spring

    【讨论】:

    • 当我使用来自github.com/chiknrice/concordion-spring-runner 的 SpringifiedConcordionRunner 时它可以工作但是当我从我的控制器调用服务 bean 时我有 nullPointerExeption:public String getPrenom(){ return userservice.findByUserName(); } userservice bean 为空
    • 我不知道问题出在哪里。请问您有什么想法吗?
    • 我通过在我的 test-config.xml 中声明 seviceBean 解决了这个问题
    猜你喜欢
    • 2019-02-27
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 2020-02-13
    • 2023-01-29
    相关资源
    最近更新 更多