1
다음 사양은 작동하지만 이럴 수는 없습니다. 나는 rspec, 특히 mock과 stubs에 대해 머리를 쓰는 데 어려움을 겪고있다. 어떻게해야합니까?
이
모델 코드class RecipeFermentable < ActiveRecord::Base
belongs_to :recipe
belongs_to :product
def set_attributes()
attrs = product.product_attributes
self.ppg = attrs.find_by_name(:ppg.to_s).value
self.ecb = attrs.find_by_name(:ecb.to_s).value
end
end
입니다 그리고 이것은 내가 내 사양 내 방법보다 훨씬 더 큰 시작을
it "should set the attributes from the product" do
@product_attribute1 = mock_model(ProductAttribute, :name => :ppg, :value => 40)
@product_attribute2 = mock_model(ProductAttribute, :name => :ecb, :value => 1)
@product = Product.new
@product.product_attributes << @product_attribute1
@product.product_attributes << @product_attribute2
@recipe_fermentable = RecipeFermentable.new
@recipe_fermentable.product.should_receive(:product_attributes).and_return(@product_attributes)
@product_attributes.stub(:find_by_name).with(:ppg.to_s).and_return(@product_attribute1)
@product_attributes.stub(:find_by_name).with(:ecb.to_s).and_return(@product_attribute2)
@recipe_fermentable.set_attributes
@recipe_fermentable.ppg.should eql(40)
@recipe_fermentable.ecb.should eql(1)
end
을 쓴 사양이고, 나는 진짜 제품을 사용하고 있습니다 . 이것에 대한 좋은 지침을 작성하는 길에있는 몇 가지 지침은 실제로 도움이 될 것입니다. 또한 누군가가 mocks와 스텁을 사용하여 rspec을 배우기에 좋은 리소스를 알고 있다면 링크를 추가 할 수 있습니까?
감사
감사합니다. 데이터를 복제하는 이유는 시간이 지남에 따라 제품 속성이 변경 될 수 있지만 제조법의 속성이 동일하게 유지되어야하기 때문입니다. 사용자가 변경하려고하지 않는 한. – Damian
좋습니다. 당신이 그랬던 것처럼 속성을 저장하는 것이 틀림 없습니다. – hgmnz