ソフトウェア
作成したRails3.2アプリにいくつかのモデルがあります。大まかに言えば、主要なモデルは、Companies、Products、ReverseIndexです。ご想像のとおり、企業には複数の製品があります。製品にはいくつかの属性キーワードがあります。
特定のキーワードに対して製品IDのリストを持つReverseIndexを作成しました。このようにして、キーワードごとに製品をすばやく検索できます。
物事の同期を維持するためにafter_saveコールバックを使用して製品が更新されると、ReverseIndexが更新されます。
rspecでテストする方法についての質問
コードは機能していますが、テストを追加したいと思います。たとえば、同じキーワードで追加の製品が追加されたときに、そのキーワードの適切なReverseIndexエントリが製品のIDで更新され、製品が削除されたときに製品も更新されることを確認します。 ReverseIndexエントリからの参照。
テストにrspecを使用しています。この問題はモデルに関連しており、ロジックはモデルクラスにあります。ただし、これはモデルの単体テストというよりもシステムの動作に似ているようです。モデル内でafter_saveとメソッドを使用するため、コントローラーとは関係ありません。
基本的なモデルの動作を実際に確認しようとしていますが、これは機能テストの問題だと思います。(キャッチは、最初に2つの製品を作成してから、テストを実行するために、すでに使用されているキーワードを使用して3番目の製品を追加する必要があることです。)これにはおそらくrspecを使用できます(使用する必要があります)。それをするために。
何かご意見は?rspecでこれを行うにはどうすればよいですか、それとも別のテスト方法を使用する必要がありますか?