2016-04-04 5 views
0

実際のコードで得られたcassandraのセッションオブジェクトを次のようにモックしようとしています... session = cluster.connect(keyspace); 私は何を探していますが、「文を実行し、モックセッションオブジェクトを返すには、」あるCasockandraセッションオブジェクトをモックする

私は、次のオプション

  1. MemberModifier.stub( MemberMatcher.method(Cluster.class、「接続を試してみました" String.class))。toReturn(session);
  2. PowerMockito.when(cluster.connect(keyspace))。then返される(セッション);
  3. PowerMockito.when(cluster.connect(鍵空間))thenAnswer(新しい回答(){ パブリックオブジェクト回答(InvocationOnMock呼び出し){ リターンセッション; }})。
  4. PowerMockito.when(cluster.connect(keyspace))。then返される(セッション);
  5. セッション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

答えて

0

テストのためにJavaドライバセッションオブジェクトをモックしたいと思いますか?この場合

、私が推薦する:

  1. Achilles Embedded CassandraまたはCassandra Unit

  2. はCQLの要求と応答をシミュレートStubbed Cassandraを使用して参照して、ユニットテストのために埋め込まれたカサンドラ・サーバを使用してください。これは恐らくあなたが望んでいるものを実現するのに最も近いでしょう

+0

その情報をお寄せいただきありがとうございます....だから、PowerMockやMockitoのフレームワークを使って模倣する方法はないのだろうか?とにかく、あなたも言ったことを試してみましょう。再度、感謝します! – Ram

+0

'Cluster'オブジェクトは保護されたコンストラクタを持っていますので、それを模擬するのはかなり難しいです。一般的に、Powermockに頼ってすべてをスタブする必要がある場合は、Stubbed Cassandraに直接行くことをお勧めします – doanduyhai

関連する問題