seems the blueprint is not inheriting from active record base so no #attributes on the class, have to look for another solution or pass in some parameters my self
On 2 February 2010 12:26, Stephen Smithstone <stephen.smithst...@gmail.com>wrote: > cheers for the response , seem that attributes is missing from hash on my > system > > all i did was the blueprint with a standard hash > > client = { :title => "Mr } > > client.attributes > > NoMethodError: undefined method `attributes' for {:title=>"Mr"}:Hash > > is attributes added on by rails ? > > if so my setup must be wrong > > > On 2 February 2010 12:07, J. B. Rainsberger <jbrainsber...@gmail.com>wrote: > >> On Tue, Feb 2, 2010 at 04:24, Stephen Smithstone <ssmithst...@me.com> >> wrote: >> >> > A bit stuck here being new to ruby and rspec >> >> Welcome. I hope you like the experience. Good news: we've seen what >> you've done a thousand times and so it's quite easy to explain. >> >> > it "should create new client" do >> > // creates me a hash of generated values using Foregey >> > client = Client.plan >> > // specify that I should be creating a new client with the hash >> values >> > from client >> > Client.should_receive(:new).with(client) >> > //post to the server >> > post 'create' , :client => client >> > end >> > >> > in my controller >> > >> > def create >> > client = Client.new(params[:client]) >> > end >> > >> > now this is failing with >> > >> > Spec::Mocks::MockExpectationError: <Client(id: integer, created_at: >> > datetime, updated_at: datetime, title: string, lastname: string, >> firstname: >> > string, email: string) (class)> received :new with unexpected arguments >> > expected: ({:title=>"Mr", :firstname=>"Ernest", :lastname=>"Burke", >> > :email=>"rgarr...@blogtag.info"}) >> > got: ({"title"=>"Mr", "lastname"=>"Burke", "firstname"=>"Ernest", >> > "email"=>"rgarr...@blogtag.info"}) >> > >> > is there a way to specify to use symbols instead of the strings as keys, >> as >> > I dont want to be doing >> > >> > :client => { "title" => client.title , ............ } >> > >> > as the client model may change over time >> >> Try Client.should_receive(:new).with(client.attributes), because the >> #attributes method turns a model into a Hash of symbol to value. It >> uses string keys instead of symbol keys, but that shouldn't hurt you. >> >> Good luck. >> -- >> J. B. (Joe) Rainsberger :: http://www.jbrains.ca :: >> http://blog.thecodewhisperer.com >> Diaspar Software Services :: http://www.diasparsoftware.com >> Author, JUnit Recipes >> 2005 Gordon Pask Award for contribution to Agile practice :: Agile >> 2010: Learn. Practice. Explore. >> _______________________________________________ >> rspec-users mailing list >> rspec-users@rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> > >
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users