Rails フィクスチャのサポートはneo4j
gem に組み込まれていません。実際には、まだ実装していない ActiveRecord 機能です。まず、factory_girl をチェックすることをお勧めします。
https://github.com/thoughtbot/factory_girl
ファクトリを定義し、テストでオブジェクトを作成するシステムを、より動的で維持しやすくします。もちろん、フィクスチャのように最初にオブジェクトを設定するのではなく、テストごとにデータベース呼び出しを行う必要があるため、テストが遅くなることを意味します。
多くの人が「一方通行の方がよい」という考え方に陥り、フィクスチャまたはファクトリのいずれかを使用する必要があると言います。プロジェクトには実際に両方の余地があると思います。フィクスチャは、常にそこにあることがわかっているオブジェクトに特に適しています。それらの最大の問題の 1 つは、テストの作業中にフィクスチャ ファイルを参照する必要があることです。
あなたの編集で、フィクスチャは関係をサポートしていないと述べました。それは正確には真実ではありません。ActiveRecord フィクスチャは、関連付けの値を指定する YAML でのプロパティの定義をサポートします。ActiveRecord では関連付けは外部キー/結合テーブルを介して管理されますが、Neo4j では関係を介して行われます。だから、同じ構造でいいと思います。これに取り組みたい場合は、次の 2 つの点に注意してください。
ActiveRecord フィクスチャでは、外部キー列を直接指定するか、名前で関連付けを指定して、次のように識別子を参照できます。
### in pirates.yml
reginald:
name: Reginald the Pirate
monkey_id: 123
# OR
monkey: george
### in monkeys.yml
george:
name: George the Monkey
ActiveRecord フィクスチャを使用すると、これらの識別子は実際には整数にハッシュされ、その整数はデータベース内のそのレコードの ID に常に使用されます。これにより、関連付けを簡単に設定できます。おそらく、neo4j.rb に対しても同様の回避策を実行する必要があります。ActiveNode モデルにはデフォルトのプロパティがあるため、オーバーライドできる可能性がありますが、ユーザーのカスタム定義uuid
に影響を与えないようにする必要があることに注意してください。id_property