RSpec と Shoulda を使用すると、次のことができます。
it { should belong_to(:product) }
仕様では、観察された動作を指定する必要があると言われています。この仕様も、モデルに記述できるコードの重複のように見えます。では、このようなテストを実際に使用する時間と場所はありますか?
RSpec と Shoulda を使用すると、次のことができます。
it { should belong_to(:product) }
仕様では、観察された動作を指定する必要があると言われています。この仕様も、モデルに記述できるコードの重複のように見えます。では、このようなテストを実際に使用する時間と場所はありますか?
より大きな問題は、これをテストするのはなぜ悪いのかということです。仕様で観察された動作を指定する必要があると言われ、モデルがbelongs_to
自動的に関連付けにアクセスする方法を提供する場合、それは観察するものではありませんか?代わりにメソッドをテストすることもでき#product
ますが、そのテストはどのように行われますか?
it "has an association to a product" do
product = Product.create
model = Model.create(:product_id => product.id)
model.product.should eq product
end
シングルライナーを使用するよりも本当に良いですか?
it { should belong_to(:product) }
コードが何らかの形で重要である場合は、テストする必要があります。
さらに、TDDをフォローしている場合は、最初にテストを記述して、関連付けが存在する必要があることを指定してから、そのテストを維持するためのコードを記述します。