私はテストやレールには新しく、自分自身を理解することを試みましたが、運が全くありませんでした。rspecを使ってレールのネストされた属性をテストする
I持って、次のモデル
class Picture < ActiveRecord::Base
belongs_to :product
has_attached_file :image
end
class Product < ActiveRecord::Base
has_many :pictures, :dependent => :destroy
accepts_nested_attributes_for :pictures, :reject_if => lambda { |p| p[:image].blank? }, :allow_destroy => true
end
とかなり標準、私は推測しているコントローラ...
def create
@product = Product.new(params[:product])
if @product.save
redirect_to products_path, :notice => "blah."
else
render :action => "new"
end
end
私がどのように行くだろうし、これをテストしますか?私はこのような何かを試してみましたが、私はそれを動作させることはできません。
describe ProductsController do
it "adds given pictures to the product" do
product = Factory.build(:product)
product.pictures.build(Factory.attributes_for(:picture))
post :create, :product => product.attributes
Product.where(:name => product[:name]).first.pictures.count.should == 1 # or something
end
end
それはおそらく属性は、createアクションに渡されたが、どのように私はこの作業を取得することができますされている方法とは何かを持っていますか?私はレール3.1.rc5を使用していますが、なぜそれが動作していないのと関係があるのか疑問に思っています...
基本的なレール機能であり、
私は強く、これに反対します。テストをしておらず、仕様やドキュメントがない場合は、回帰を捕まえません。 – phikes
@phikes統合テストを使ってテストした部分を見ましたか? – jonnii