Я пытаюсь изучить Rspec в очень простом CRUD Rails 3.2.8 приложении. Я следую общей схеме примеров Майкла Хартла и был умеренно успешным с огурцом для частичного снаружи. Теперь я хочу протестировать функцию Twilio SMS и, похоже, не могу попасть на первую базу, в основном потому, что я не задаю правильные вопросы, поэтому я ожидаю, что их исправят и вернусь на правильный путь. Мое приложение имеет две модели, товар и цену, и они взаимодействуют друг с другом в моих тестах на огурцы, поэтому он появляется. Я знаю, как в огурце, мне нужен объект, чтобы начать проверять его взаимодействия. В моем контроллере цен, я вижу, что я могу получить цены на сырье с ниже в моих ценах # создать метод:Rspec, FactoryGirl не удалось найти метод ActiveRecord
@price = @commodity.prices.build(params[:price])
я в конечном счете хочу, чтобы создать завод, который будет иметь много цен на данный товар. Но я хочу сначала основать. После примеров thoughtbot на их Readme я пытаюсь следующее рельсах консоли:
FactoryGirl.create(:commodity) do |price|
Commodity.prices.build(attributes_for(:price))
end
Результат: NoMethodError: неопределенный метод `цены для # Хм, я не должен понимать либо RSpec или Factory Girl. Вот мой основной factories.rb:
FactoryGirl.define do
factory :commodity do
name "corn"
end
sequence :price do |n|
price
date { Time.now }
end
end
Вот мои две модели:
class Commodity < ActiveRecord::Base
attr_accessible :description, :name
has_many :prices
end
MOST_RECENT = 5
class Price < ActiveRecord::Base
attr_accessible :buyer, :date, :price, :quality, :commodity_id
scope :most_recent, lambda { order("id desc").limit(MOST_RECENT) }
belongs_to :commodity
end
Моя попытка понять это, чтобы сделать это просто в Rails консоли, но ошибка также появляется, когда я бегу RSpec также. Но почему FactoryGirl или Rspec, похоже, не используют метод цен, который я получаю с Active Record? Ясно, что я что-то не понимаю, или я бы нашел ответ на Stack, thanx, sam
Да, спасибо! Мне нужно шесть цен, чтобы проверить мою модель в модели и сделать их последовательными, чтобы помочь мне написать этот тест. – sam452