データを nosql データ ストア (この場合は cassandra) に永続化するコードの単体テストを作成する最善の方法は何ですか?
=> git ハブ ( https://github.com/hector-client/hector/blob/master/test/src/main/java/me/prettyprint/hector/testutils/EmbeddedServerHelper ) のユーティリティを使用して、組み込みサーバー アプローチを使用しています。 .java )。ただし、これにはいくつかの問題があります。1) 複数のテスト ケースにまたがってデータを保持するため、テスト クラスのテスト ケースでデータが異なることを確認することが難しくなります。テスト ケースごとに cleanUp @After を呼び出してみましたが、データがクリーンアップされないようです。2)テストを追加するにつれてメモリが不足しています。これは1が原因である可能性がありますが、まだわかりません。現在、ビルドを実行するためのヒープ サイズは 1G です。
=> 私が考えているもう 1 つのアプローチは、cassandra ストレージをモックすることです。しかし、データが cassandra に保存される方法に関する問題をキャッチする上記のアプローチがよくあるため、cassandra スキーマにいくつかの問題が漏れる可能性があります。
これについての考えと、誰かが EmbeddedServerHelper を使用していて、私が言及した問題に精通している場合はお知らせください。
ただの更新。テスト組み込みサーバーで使用される cassandra.yaml で in_memory_compaction_limit_in_mb パラメーターを 32 に変更することで、2) ビルドの実行時に Java ヒープ領域が不足する問題を解決できました。以下のリンクはhttp://www.datastax.com/docs/0.7/configuration/storage_configuration#in-memory-compaction-limit-in-mbに役立ちました。それは 64 で、圧縮中に一貫して失敗し始めました。