Я пытаюсь протестировать модель Hour с RSpec, а именно метод класса 'find_days_with_no_hours', который ведет себя как область видимости. Бизнес has_many Часы, связанные через STI.
find_days_with_no_hours нужно вызывать через бизнес-объект, и я не могу понять, как настроить это в тесте RSpec.
Я хочу иметь возможность проверить что-то вроде:
bh = @business.hours.find_days_with_no_hours
bh.length.should == 2
Я пробовал разные подходы, такие как создание бизнес-объекта (например, с Business.create), затем установка @ business.hours << mock_model (BusinessHour, ..., ..., ...), но это не работает </p>
Как это обычно делается?
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