A bit stuck here being new to ruby and rspec

Im trying to spec out a rails controller and using machinist to generate a model

so in my spec i have



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

Cheers



_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to