J'essaie de tester le modèle Hour avec RSpec, à savoir la méthode de classe 'find_days_with_no_hours' qui se comporte comme une portée. Les affaires ont beaucoup d'heures associées par STI. find_days_with_no_hours doit être appelé via un objet métier et je n'arrive pas à comprendre comment le configurer dans le test RSpec. Je veux être en mesure de tester quelque chose comme:Test has_many association avec RSpec
bh = @business.hours.find_days_with_no_hours
bh.length.should == 2
J'ai essayé différentes approches, comme la création d'un objet métier (avec, disons, Business.create), puis définir @ business.hours < < mock_model (BusinessHour, ..., ..., ...) mais ça ne marche pas.
Comment cela se fait-il normalement?
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