JDBIのQueryクラスを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のバージョンは1.9.5です
- JDBIのバージョンは2.4.1(現在dropwizardに同梱されているもの)です。
例外は次のとおりです。
java.lang.NullPointerException
at org.skife.jdbi.v2.SQLStatement.bind(SQLStatement.java:434)
at TestClass.testBind(TestClass.java:17)
at ....
これを回避する方法はありますか?