2016-12-15 2 views
4

나는이 방법도발의 방법은 null을 반환

에게 문

Table table = getTableInstance("Sampletable"); 
을 테스트하는 동안 내가 JUnit 테스트 코드

Connection mockconnection = PowerMockito.mock(Connection.class); 
Table mocktable = PowerMockito.mock(Table.class); 
PowerMockito.when(mockconnection.getTable(TableName.valueOf(Mockito.anyString()))) 
    .thenReturn(mocktable); 

Scan mockedScan = PowerMockito.mock(Scan.class); 
ResultScanner mockrs = PowerMockito.mock(ResultScanner.class); 
PowerMockito.when(mocktable.getScanner(mockedScan)).thenReturn(mockrs); 

다음 쓴이를 위해 다음과 같은 방법

public ResultScanner getScanner(Scan scan) { 
    Table table = getTableInstance("Sampletable"); 
    return table.getScanner(scan); 
} 

잘 실행되고 조롱 된 표 객체를 제공하지만 설명문은

table.getScanner(scan); 

을 반환합니다.

아래 링크이의

http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hbase/hbase-client/1.1.1/org/apache/hadoop/hbase/client/Table.java

안내 제발 나에게 표 인터페이스의 소스 코드를 찾아주세요?

+0

는'scan'이 방법에서오고 당신의 단위 테스트 –

+0

를 포함하는 전체 코드를 추가 작업을해야

PowerMockito.when(mocktable.getScanner(Mockito.any(Scan.class))).thenReturn(mockrs); 

와 테스트 케이스의 마지막 줄을 교체? – isah

+0

죄송합니다 나는 인수를 놓쳤습니다 – Reddevil

답변

1

그것은

+1

그리고'Mockito.any (Scan.class)'를'Mockito.eq (mockedScan)'으로 대체하십시오. OP는 이미 사용 된'Scan' 인스턴스를 이미 알고 있기 때문에'getScanner'에서 생성 된 새로운 객체가 아니라 올바른 객체가 사용되었는지 검사 할 수 있습니다 (이것은 코딩 문제가 될 것이므로 테스트 실패). – Tom

관련 문제