2016-08-08 7 views
0

나는 모의 테스트를 처음 받았고 mockito로 다음을 조롱하는 방법에 대해 궁금해하고있었습니다. DAO는 캐스트 객체를 조롱하는 방법

protected DAO<T, Long> dao; 

으로 감사를 정의

uDAO = (UserDAO) dao; 

!

+0

문제는 다음과 같습니다 : 뭔가가 상속하는 경우, 당신은 힘든 시간을 조롱을 가지고있는 것보다 반사에 대한 추가 정보를 원하시면

는 아래의 링크를 보라. 실제 솔루션은 의존성 삽입을 사용하여 일부 객체에서 수퍼 클래스에 일치하는 객체를 제공 할 수 있는지 확인하는 것입니다. – GhostCat

+0

어떻게 'dao'를 초기화 할 수 있습니까? – kuhajeyan

답변

1

공용 설정 메소드가없는 개인 필드와 보호 필드에 모의 객체를 삽입하려면 반사를 사용해야합니다. 반사를 사용하면 보호 된 필드 대신 조롱 된 객체를 설정할 수 있습니다. 다음은 relections 코드 샘플입니다.

Field hack = <PUT YOU CLASS NAME>.class.getDeclaredField("dao"); 
hack.setAccessible(true); 
hack.set(<Object of the class where you are injecting the mock>,<the mock object>); 

는 일반 PowerMockito.mock 또는 Mockito.mock 기능을 사용할 수 조롱 객체를 생성합니다.

Is it possible in Java to access private fields via reflection http://www.java2s.com/Code/Java/Reflection/Setprivatefieldvalue.htm

관련 문제