これはもう少し高度な質問だと思うので、私はこれについて上級/経験豊富なRuby/Rails開発者からの回答のみを探しています。
私は、ARモデルにいくつかの動作を追加するために取り組んでいる宝石を持っています。さまざまな関連付け(has_many、habtm、has_oneなど)についてテストする必要があります。また、関連付けにさまざまなオプションが渡された場合の動作(:foreign_keyなど)もテストする必要があります。これらすべての異なるモデルで、フィールド自体を変更する必要がなく、has_many、belongs_toなどで指定された動作のみを変更する必要があるため、データベースで同じテーブルを使用できます。さまざまなオプションがあるため、モデルの数が非常に多いことに注意してください。
まず、読みやすくするために、テスト自体の横/にモデルの定義を含めることは悪い習慣ではないと思います(同じモデルを使用する複数のテストがある場合は、それらをグループ化して前のモデルを使用します方法)。ですから、これは私の目標の1つであり、同意しない場合はコメントすることができます。
2つ目は、すべてのテストでモデルの単純/同じ名前を維持したかったことです。たとえば、TaskWithManySubtasksAndForeignKeyやそのような醜いものではなく、「Task」などです。問題は、モデルが非常に多いため、意味のある単純な名前を思い付くのが難しいことです。これについてはよくわかりません。同じ名前を使用するのは定数なので、少し問題があります。プロキシクラスを使用したソリューションがありますが、これが最適なソリューションではないと思います。「taskModel」のような変数(letメソッドを使用)の使用を検討していましたが、少し冗長で珍しいようでした。
頭に浮かぶもう1つのオプションは、簡単に実行できるかどうかはわかりませんが、既存の関連付けを削除してから、新しい関連付けを定義することです。たとえば、has_manyを追加してから削除し、habtmを追加します...
これをどのように行いますか?