1

https://github.com/neo4jrb/neo4j/wiki/How-To-Testの行に沿って単体テストを書き始めています

そこにあるアプローチの1つは非常に遅く(テストごとに10秒)、もう1つはラベルを削除しません(おそらく他のものも)

誰もがより精巧なアプローチを提案できますか? コアの neo4j 資料で、Java ドキュメントには 一時データベースを作成および破棄するメソッドが記述されていることに気付きましたが、(非常に素晴らしい) ruby​​ および rails neo4j gem からそれらにアクセスする方法がわかりません。おそらく、低レベルの REST API 経由でしょうか? どの API 呼び出しが利用可能かを把握するのは困難です。

4

1 に答える 1

1

ActiveRecordそのため、Rubyでのテストの典型的なアプローチであるトランザクションでテストを囲むことができます。その方がパフォーマンスが向上する可能性がありますが、データベースをクリーンに保つのにも役立ちます。

しかし、その通りです。非永続データベースは、Neo4j で提供されている、テスト用の一時データベース用のツールです。ただし、これはJRubyを実行している場合にのみ利用できると思います. しかし、私はこれに出くわしました:

https://groups.google.com/forum/#!topic/neo4j/7xeEPWEiqD0

Neo4jサーバーを「メモリ内」モードで起動できるプロジェクトへのリンクはどれですか(非永続データベースを使用):

https://github.com/jexp/neo4j-in-memory-server

これは Neo4j 2.0.0 の例を示しているため、それ以降のバージョンで機能するかどうかはわかりませんが、テスト データベースには試してみる価値があるかもしれません。

編集:私が考えたもう1つのことは、vcr宝石を使用することです:

https://github.com/vcr/vcr

基本的に、サーバーに対して行われたすべてのリクエストを記録してから再生します。これは、結果がべき等である API エンドポイントではうまく機能しますが、Neo4j のようなデータベースで使用する場合は、テストを実行するたびにテストがデータベースをクリアしていることを確認して、常に新しく開始されるようにする必要があります。

于 2015-04-06T07:14:28.827 に答える