1

RSpec と Shoulda を使用すると、次のことができます。

it { should belong_to(:product) }

仕様では、観察された動作を指定する必要があると言われています。この仕様も、モデルに記述できるコードの重複のように見えます。では、このようなテストを実際に使用する時間と場所はありますか?

4

1 に答える 1

3

より大きな問題は、これをテストするのはなぜ悪いのかということです。仕様で観察された動作を指定する必要があると言われ、モデルが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をフォローしている場合は、最初にテストを記述して、関連付けが存在する必要があることを指定してから、そのテストを維持するためのコードを記述します。

于 2013-02-15T17:29:26.277 に答える