ruby - not - Rspec `eq` vs` eql` en las pruebas `expect`
rspec subject (1)
Aquí hay diferencias sutiles, basadas en el tipo de igualdad que se utiliza en la comparación.
De los documentos de Rpsec:
Ruby exposes several different methods for handling equality:
a.equal?(b) # object identity - a and b refer to the same object
a.eql?(b) # object equivalence - a and b have the same value
a == b # object equivalence - a and b have the same value with type conversions]
eq
usa el operador ==
para la comparación, y eql
ignora las conversiones de tipos.
¿Cuál es la diferencia entre usar eq
y eql
en las pruebas rspec? ¿Hay alguna diferencia entre:
it "adds the correct information to entries" do
# book = AddressBook.new # => Replaced by line 4
book.add_entry(''Ada Lovelace'', ''010.012.1815'', ''[email protected]'')
new_entry = book.entries[0]
expect(new_entry.name).to eq(''Ada Lovelace'')
expect(new_entry.phone_number).to eq(''010.012.1815'')
expect(new_entry.email).to eq(''[email protected]'')
end
y:
it "adds the correct information to entries" do
# book = AddressBook.new # => Replaced by line 4
book.add_entry(''Ada Lovelace'', ''010.012.1815'', ''[email protected]'')
new_entry = book.entries[0]
expect(new_entry.name).to eql(''Ada Lovelace'')
expect(new_entry.phone_number).to eql(''010.012.1815'')
expect(new_entry.email).to eql(''[email protected]'')
end