2009-09-28 2 views
1

스프링 - 휴식, 비즈니스 로직 및 데이터베이스 작업에 3 개의 계층 적 레이어가 삽입되었습니다. BL 및 DAO에 대한 Junit 테스트는 비즈니스 로직 ioc 계층 만 주입 할 수있는 경우 정상적으로 작동합니다. JUnit 테스트에 대한Spring & Struts2 REST - junit tests

내 저녁 식사 클래스 :

import org.springframework.test.AbstractTransactionalSpringContextTests; 

public class AbstractTest extends AbstractTransactionalSpringContextTests { 
protected static final String path = "config/spring/applicationContext.xml"; 

/** 
* Disabled autowire by type 
* Disabled dependency check 
*/ 
public AbstractTest() { 
    super(); 
    this.setAutowireMode(AUTOWIRE_BY_NAME); 
    this.setDependencyCheck(false); 
} 

@Override 
protected String[] getConfigLocations() { 
    return new String[] { 
      path 
    }; 
} 
} 

그래서 - 나머지는 비즈니스 로직을 호출하고이 데이터베이스 작업을 호출합니다. Nullpointer 예외는 데이터베이스 호출의 비즈니스 논리에 해당합니다. 예와

상세 정보 : REST : getUserDAO Nullpointer이 getUserBO 방법에 getUserDAO에 발생합니다

(ID) : getUserBO (ID) DAO를 호출 인 getUser (ID)는 BL 호출. 이는 배포 된 junit 테스트에서만 발생합니다.

+0

어떤 메소드가 NullPointerException을 던지고 있습니까? –

+0

질문을 편집했습니다. – Trick

답변

0

struts2 나머지 클래스 매핑 문제입니다. 그래서 스프링이 주입 할 수 없었습니다 ...

0

데이터 소스 bean이 정의되어 있습니까? (스택 추적, 응용 프로그램 컨텍스트 파일 등)에 대한 자세한 정보가 없으면 내가 가지고있는 가장 좋은 추측입니다 ...

+0

질문을 편집했습니다. 스택 트레이스와 appContext는 무의미한가요? – Trick

+0

userDao에 대한 setter 메소드에 로깅 구문을 추가 할 수 있습니까? (또는 객체가 null 인 경우) 테스트 중에 스프링으로 초기화되는지 확인하십시오. dao를 호출하기 전에 다음과 같이 null이 아니라고 주장하십시오. UserDao dao = getUserDao(); assert (dao! = null) : "UserDao는 null입니다 : BUG !!!"; – les2