[rspec-users] Cucumber - RSpec matcher

Pat Maddox pat.maddox at gmail.com
Mon Mar 9 13:54:06 EDT 2009


Use should == instead of equal.  == is equality, equal is object  
identity.  You very rarely want to use equal.

 >> "foo".equal? "foo"
=> false
 >> "foo" == "foo"
=> true

Pat


On Mar 9, 2009, at 10:18 AM, James Byrne wrote:

> I must be missing something obvious here but I cannot seem to see it.
>
> I have this step definition:
>
> When /entity named "(.*)" has a legal name "(.*)"/ do |name, legal|
>  myentity = Entity.find_by_entity_common_name!(name.hll_keycase)
>  myentity.entity_legal_name.should equal legal.hll_keycase
> end
>
> Which fails with this:
>
>    And the entity named "Myuser" has a legal name "Myuser Legal Name"
> # features/app/models/entities/step_definitions/entity_steps.rb:20
>      expected #<ActiveSupport::Multibyte::Chars:0x2b4bb29e73d8
> @wrapped_string="myuser legal name">, got "myuser legal name" (using
> .equal?)
>
> which to me says that I got what I expected (myuser legal name) but
> which fails the equality test nonetheless.
>
> However, if I switch the test to this:
>
>  assert_equal(myentity.entity_legal_name,legal.hll_keycase)
>
> Then the step definition passes.
> -- 
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users



More information about the rspec-users mailing list