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@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

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

Reply via email to