0

테스트 빈에서 메소드의 필드에 모의 객체를 삽입하고 싶습니다. 우리는 sth 있습니다. 같은 :메소드 필드에 모의 주입하기

@Stateless 
@LocalBean 
public class TestedBean implements TestedBeanInterface 
{ 
    public OtherClass testedMethod { 
    private ClassIWantToMock necessaryField = new ClassIWantToMock(); 
    return necessaryField.doThingsImpossibleToDoAtTest(); 
    } 
} 

그리고 콩,이 방법으로 테스트입니다 :

@RunWith(Arquillian.class) 
public class TripPlannerFactoryBeanTest { 

    @Deployment 
    public static JavaArchive createDeployment() { 
     // 
    } 

    @EJB(mappedName = "java:module/TestedBean!ab.abc.abcd.TestedBean") 
    TestedBean testedBean; 

    @Test 
    public void testMethodOfTestedBean(){ 
    testedBean.testedMethod(); 
    } 
} 

TestedBean 코드의 변경없이 ClassIWantToMock()을 조롱 할 수 있습니까?

답변

0

Mockito와 같은 실제 모의 프레임 워크를 말하는 겁니까? 아니면 정확히 달성하고 싶습니까/테스트?

귀하의 질문에 대한 간단한 대답은 아니오입니다. 오페라 인스턴스를 직접 인스턴스화하는 경우 시험 방법 모의 방법이 없습니다.

대신 수업을 삽입 할 수는 없지만 물론 코드를 변경해야 할 수 있습니다. Byteman과 같은 라이브러리를 테스트하려는 것에 따라, 특히 오류 사례를 테스트하려는 경우에 도움이됩니다.