2010-10-04 5 views
0

J'utilise factory_girl + rspec on Rails 2-3 stable:stubbing factory_girl + méthodes rspec et les attributs

Test:

context "test" do 
     before(:each) do 
     @profile.stub!(:lastfm_enabled?).and_return(true) 
     end 
     it "should be able to scrobble if true" do 
     @profile.update_attribute(:lastfm_scrobbling, true) 
     @profile.lastfm_scrobbling_enabled?.should be_true 
     end 
    end 

code:

def lastfm_scrobbling_enabled? 
    lastfm_enabled? && lastfm_scrobbling 
end 

Ce test simple échoue, plus le vrai lastfm_enabled? la méthode est appelée pour de vrai.

@profile n'est pas une maquette, elle a été créée avec factory_girl.

Initialement, j'ai aussi écrasé l'attribut lastfm_scrobbling, mais je pensais à la façon dont fonctionne factory_girl et j'ai préféré le paramétrer directement.

Une idée pourquoi?

Répondre

3

Vous avez besoin bouchonner la méthode read_attribute

before(:each) do 
    @profile.stub!(:read_attribute).with(:lastfm_enabled).and_return(true) 
    end 
Questions connexes