rspec Spott-Objekt-Eigenschaft-Zuordnung
Ich habe eine rspec verspottet Objekt einen Wert zuweisen, ist Eigentum. Ich bin struggleing zu haben, dass die Erwartung erfüllt meine rspec testen. Ich Frage mich nur was die sytax ist? Der code:
def create
@new_campaign = AdCampaign.new(params[:new_campaign])
@new_campaign.creationDate = "#{Time.now.year}/#{Time.now.mon}/#{Time.now.day}"
if @new_campaign.save
flash[:status] = "Success"
else
flash[:status] = "Failed"
end end
Den test
it "should able to create new campaign when form is submitted" do
campaign_model = mock_model(AdCampaign)
AdCampaign.should_receive(:new).with(params[:new_campaign]).and_return(campaign_model)
campaign_model.should_receive(:creationDate).with("#{Time.now.year}/#{Time.now.mon}/#{Time.now.day}")campaign_model.should_receive(:save).and_return(true)
post :create
flash[:status].should == 'Success'
response.should render_template('create') end
Das problem ist, ich bin immer diese Fehlermeldung:
Spec::Mocks::MockExpectationError in 'CampaignController new campaigns should able to create new campaign when form is submitted' Mock "AdCampaign_1002" received unexpected message :creationDate= with ("2010/5/7")
So, wie richte ich eine Erwartung für die Objekt-Eigenschaft-Zuordnung?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine solche Sache als "Eigenschaft-Zuordnung", in Rubin. In Ruby alles ist eine Methode aufrufen. So, Sie verspotten die setter-Methode wie jede andere Methode:
BTW: die Diagnose-Meldungen, dass die tests ausdrucken sind nicht nur für shpw. In diesem Fall wird die Nachricht bereits sagt Ihnen alles, was Sie wissen müssen:
Spec::Mocks::MockExpectationError in 'CampaignController new campaigns should able to create new campaign when form is submitted' Mock "AdCampaign_1002" received unexpected message :creationDate= with ("2010/5/7")
Wie Sie sehen können, die Nachricht, die Sie geschrieben bereits sagt Ihnen, was der name der Methode ist, dass Sie brauchen mock Recht gibt:
Gefunden, ein link darüber hier
Dies ist durch einfaches hinzufügen :creationDate= eher dann nur :creationDate in der Erwartung.