Tôi khá mới để thử nghiệm và đường ray và cố gắng tìm ra nó nhưng không may mắn.các thuộc tính lồng nhau thử nghiệm của đường ray với rspec
tôi có các mô hình sau
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
và một bộ điều khiển mà là khá chuẩn, tôi đoán ...
def create
@product = Product.new(params[:product])
if @product.save
redirect_to products_path, :notice => "blah."
else
render :action => "new"
end
end
thế nào tôi sẽ đi về và kiểm tra điều này? Tôi đã thử một cái gì đó như thế này nhưng tôi không thể làm cho nó hoạt động:
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
Nó có thể có liên quan đến cách thức các thuộc tính được chuyển đến hành động tạo nhưng làm cách nào tôi có thể làm việc này? Tôi sử dụng đường ray 3.1.rc5 nhưng tôi nghi ngờ rằng sẽ làm bất cứ điều gì liên quan đến lý do tại sao nó không hoạt động…
hoặc bạn sẽ không kiểm tra điều này vì nó là chức năng đường ray cơ bản và có khả năng được thử nghiệm tốt để bắt đầu?
tôi phản đối kịch liệt với điều này. Bạn sẽ không bắt được bất kỳ hồi quy nào nếu bạn không kiểm tra và bạn không có bất kỳ đặc điểm kỹ thuật cũng như tài liệu nào. – phikes
@phó bạn có thấy phần mà tôi đã nói thử nghiệm nó bằng các thử nghiệm tích hợp không? – jonnii