実際のコードで得られたcassandraのセッションオブジェクトを次のようにモックしようとしています... session = cluster.connect(keyspace); 私は何を探していますが、「文を実行し、モックセッションオブジェクトを返すには、」あるCasockandraセッションオブジェクトをモックする
私は、次のオプション
- MemberModifier.stub( MemberMatcher.method(Cluster.class、「接続を試してみました" String.class))。toReturn(session);
- PowerMockito.when(cluster.connect(keyspace))。then返される(セッション);
- PowerMockito.when(cluster.connect(鍵空間))thenAnswer(新しい回答(){ パブリックオブジェクト回答(InvocationOnMock呼び出し){ リターンセッション; }})。
- PowerMockito.when(cluster.connect(keyspace))。then返される(セッション);
- セッションtestSession = cassandraService.getCassandraDBConnection();
いずれも単独でも組み合わせても動作していないようです。関連のJUnitを実行すると 、私が手にエラーがここに以下 スタックトレースです...
すべてのホスト(複数可)クエリのために試してみました(試みたが失敗しました:/ <>:<>(com.datastax.driver .core.exceptions.TransportException:[/ ip address] Can not connect)) (com.datastax.driver.core.ControlConnection.connect) (Cluster.java:1414) com.datastax.driver.core.Cluster $ Manager.init(Cluster.java:1414) com.datastax.driver.core.Cluster.init(Cluster.java:162) at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:333)com.datastax.driver.core.Cluster.connectでcom.capitalone.payments.customerprofile.service.CassandraInteractionService.getCassandraDBConnectionで(Cluster.java:283) (CassandraInteractionService.java:202)
誰かが私を導くでしたここでどう?
(私は、スタックトレースでのIPアドレスとポート番号をマスクしている)
ありがとう! -Sriram
その情報をお寄せいただきありがとうございます....だから、PowerMockやMockitoのフレームワークを使って模倣する方法はないのだろうか?とにかく、あなたも言ったことを試してみましょう。再度、感謝します! – Ram
'Cluster'オブジェクトは保護されたコンストラクタを持っていますので、それを模擬するのはかなり難しいです。一般的に、Powermockに頼ってすべてをスタブする必要がある場合は、Stubbed Cassandraに直接行くことをお勧めします – doanduyhai