Query 클래스의 JDBI를 mockito로 모의하려고하지만 기본 클래스 SqlStatement
의 메소드를 모의하지 못합니다.클래스를 조롱하는 문제
아래의 코드를 실행하면 when 문이 실제로 기본 클래스에서 구체적인 구현을 호출하고 NullPointerException
으로 실패합니다.
import java.util.Map;
import org.junit.Test;
import org.skife.jdbi.v2.Query;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class TestClass {
@Test
public void testBind() {
Query<Map<String,Object>> mockQuery = mock(Query.class);
when(mockQuery.bind("xxx", 5)).thenReturn(mockQuery); //this line fails
//more stuff here
}
}
은 나뿐만 아니라 EasyMock에 이것을 시도와 같은 결과를 가지고,이 방법을 조롱하는 데 실패합니다.
추가 정보 :
:- Mockito 버전 (dropwizard와 현재 제공되는 것)
예외는 1.9.5
java.lang.NullPointerException
at org.skife.jdbi.v2.SQLStatement.bind(SQLStatement.java:434)
at TestClass.testBind(TestClass.java:17)
at ....
어떤 아이디어가이 문제를 해결할 수 있습니까? 상기
이것은 대답이 아니지만 제 경험상 DAO 코드를 조롱하는 것은 시간 낭비입니다. JDBI API를 사용할 때 발생하는 오류는 노출되지 않습니다. 실제 데이터베이스에 대한 테스트를 작성하십시오. – artbristol