2013-08-12 4 views
0

방금 ​​Android에서 Mockito로 단위 테스트를 시작했습니다. 테스트중인 클래스에서 일반 클래스/객체 대신 조롱 된 클래스/객체를 사용하려면 어떻게해야합니까? 종속성을 주입함으로써조롱 된 객체 사용

답변

0

:

public class ClassUnderTest 
    private Dependency dependency; 

    public ClassUnderTest(Dependency dependency) { 
     this.dependency = dependency; 
    } 

    // ... 
} 

... 

Dependency mockDependency = mock(Dependency.class); 
ClassUnderTest c = new ClassUnderTest(mockDependency); 
또한 의존성을 주입, 또는 직접 @Mock@InjectMocks 주석 (작동 방식에 대한 자세한 설명은 the javadoc 읽기를 사용하여 개인 필드를 주입하는 세터를 사용할 수 있습니다

).

1
  1. 테스트를 작성하는 수업에 @InjectMocks를 사용할 수 있습니다.

    @InjectMocks private EmployManager manager;

  2. 그럼 당신은 당신이 조롱하는 클래스 @Mock을 사용할 수 있습니다. 이것은 종속성 클래스가됩니다.

    @Mock private EmployService service;

  3. 는 그런 다음 테스트를 위해 일을 사용할 수 있도록하기위한 설정 방법을 쓰기.

    @Before 
    public void setup() throws Exception { 
        manager = new EmployManager(); 
        service = mock(EmployService.class); 
        manager.setEmployService(service); 
        MockitoAnnotations.initMocks(this); 
    } 
    

는 그런 다음 테스트를 작성.

@Test 
public void testSaveEmploy() throws Exception { 
    Employ employ = new Employ("u1"); 
    manager.saveEmploy(employ); 

    // Verify if saveEmploy was invoked on service with given 'Employ' 
    // object. 
    verify(service).saveEmploy(employ); 

    // Verify with Argument Matcher 
    verify(service).saveEmploy(Mockito.any(Employ.class)); 
} 
+0

http://stackoverflow.com/questions/18201643/mock-injection-using-mockito-android에 대한 답변을 제공해 주실 수 있습니까? 감사 – Traxex1909

관련 문제