[rspec-users] Hash / params causing errors

Ramon Tayag ramon.tayag at gmail.com
Thu Nov 6 22:28:29 EST 2008


Thanks for you reply.  With what you said I ended up doing this

  before do
    @user = mock_model(User, :to_param => "1", :login => "loginator",
:email => "user at email.com", :save! => true)
    User.stub!(:new).and_return(@user)
    @params = { :login => "loginator", :email => "user at email.com" }
  end

...

  it "should create a new user from params" do
    User.should_receive(:new).with({"login" => "loginator", "email" =>
"user at email.com"}).and_return(@user)
    do_post
  end

On Fri, Nov 7, 2008 at 11:03 AM, David Chelimsky <dchelimsky at gmail.com> wrote:
> On Thu, Nov 6, 2008 at 9:53 PM, Ramon Tayag <ramon.tayag at gmail.com> wrote:
>> Hey everyone,
>>
>> I'm trying to spec a controller and I can't seem to get a test to pass
>> because rspec seems to see the difference between params I expect and
>> params that I pass.  However, this comes from the same params
>> variable.  What should I do to get this to work?
>>
>> Spec::Mocks::MockExpectationError in 'UsersController handling POST
>> /users should create a new user from params'
>> Mock 'Class' expected :new with ({:email=>"user at email.com"}) but
>> received it with ({"email"=>"user at email.com"})
>
> expected {:email=>"user at email.com"}
> got {"email"=>"user at email.com"}
>
> Rails is converting what's really passed (with a Symbol key) to a
> String key. It'll work if you expect the String instead.
>
>>
>> Code is here: http://pastie.org/309263
>>
>> Thanks!
>> Ramon Tayag


More information about the rspec-users mailing list