2013-06-20 4 views
3

테스트중인 클래스 (CUT) - ejb - 개인 메소드 "getConnection"이 있습니다. CUT의 다른 메서드를 테스트하고 싶지만이 메서드는 직접 실패합니다.JMockit에서 테스트중인 클래스의 private 메소드를 모의합니다.

아래와 같이 시도했지만 "호출"이 잘못되었습니다. 메소드를 호출하고 싶지는 않습니다. 스텁하고 싶습니다. 그러나 어떻게? 그것은 조롱 유형에 대한 선언을 누락하는 것을 제외

new NonStrictExpectations() { 
    { 
    invoke(archivingBean, "getConnection");result = connection; 
    } 
}; 
archivingBean.moveCreditBasic2Archive(new Date()); 

답변

7

귀하의 테스트가 정확 ('연결'은 그루터기). 이 경우 EJB 클래스.

일반적으로 조롱 된 유형은 전체로 조롱됩니다 (모든 방법). 그러한 경우, 예를 들어 테스트 메소드에 @Mocked MyEJB archivingBean 매개 변수를 선언하십시오.

부분 조롱를 들어, 다른 한편으로는, 당신이처럼 NonStrictExpectations(Object...) 생성자를 사용

new NonStrictExpectations(archivingBean) {{ // <== note the argument here 
    invoke(archivingBean, "getConnection"); result = connection; 
}}; 
+0

이 방법 – yuyue007

+1

그 방법은 정적 "호출"이없는 jmockit의 최신 버전을 보인다 'mockit.Deencapsulation' 클래스로부터 임포트합니다. –

관련 문제