Я начал использовать драгоценный камень изготовления с RSpec и в целом имел большой успех. Однако, похоже, я не могу заставить фабрикуцию работать.Изготовление драгоценного камня с ассоциациями неопределенный метод ошибка
Я использую рубин 1.9.3, Rails 3.2.12, RSpec 2.13.0 и 2.7.0 Изготовление
Модели
class RedistributionSale < ActiveRecord::Base
belongs_to :account
belongs_to :customer
has_many :red_sale_itemisations, :dependent => :destroy
has_many :materials, :through => :red_sale_itemisations
class RedSaleItemisation < ActiveRecord::Base
belongs_to :redistribution_sale
belongs_to :material
переработчиков
Fabricator(:redistribution_sale) do
invoice_number { sequence(:invoice_number) { |i| i } }
status "Sales Receipt"
end
Fabricator(:red_sale_itemisation) do
quantity 1
material_id 1
redistribution_sale_id 1
end
На данный момент Я могу изготовить любую из этих двух моделей самостоятельно. Но я хочу, чтобы построить их в то же самое время, чтобы проверить все код модели
Я следующий тест
it "returns correct unit prices with" do
material_1 = Fabricate(:material, l1price: 7.7, l2price: 8.8, discount: false)
redistribution_sale = Fabricate(:redistribution_sale,) do
red_sale_itemisations { Fabricate(:red_sale_itemisation, material_id: material_1.id, quantity: 2) }
end
expect(redistribution_sale.total_value).to eq 17.6
end
Однако я получаю следующую ошибку
Failures:
1) RedistributionSale calculated fields returns correct unit prices with
Failure/Error: redistribution_sale = Fabricate(:redistribution_sale) do
NoMethodError:
undefined method `each' for #<RedSaleItemisation:0x00000008308d58>
# ./spec/models/redistribution_sale_spec.rb:87:in `block (3 levels) in <top (required)>'
Является ли это то, что было замечено раньше, или я делаю что-то ужасно неправильно?
Michael
Отлично, обработано. Я добавил это в Github как проблему –