Я пытаюсь проверить модель Hour с RSpec, а именно метод класса find_days_with_no_hours, который ведет себя как область. Бизнес has_many Часы, связанные через STI. find_days_with_no_hours необходимо вызвать через объект Business, и я не могу понять, как это установить в тесте RSpec. Я хочу, чтобы иметь возможность испытать что-то вроде:Тестирование has_many ассоциации с RSpec
bh = @business.hours.find_days_with_no_hours
bh.length.should == 2
Я пробовал различные подходы, как создание бизнес-объект (с, скажем, Business.create), то установка @ business.hours < < mock_model (BusinessHour, ..., ..., ...), но это не работает.
Как это обычно делается?
class Business < ActiveRecord::Base
has_many :hours, :as => :hourable
end
class Hour < ActiveRecord::Base
belongs_to :hourable, :polymorphic => true
def self.find_days_with_no_hours
where("start_time IS NULL")
end
end