estoy usando rspec y afirma comorspec ¿cuál es la diferencia entre ser nulo y be_nil
student.name should be nil
student.name should be_nil
Ambos parecen funcionar. ¿Hay alguna diferencia entre usar be nil
y be_nil
???
estoy usando rspec y afirma comorspec ¿cuál es la diferencia entre ser nulo y be_nil
student.name should be nil
student.name should be_nil
Ambos parecen funcionar. ¿Hay alguna diferencia entre usar be nil
y be_nil
???
No hay ninguna diferencia realmente, excepto be nil
consigue definido sobre la marcha, y be_nil
ha sido programado específicamente por rspec.
cuando dice should.be something
, rspec trata el siguiente
[:==, :<, :<=, :>=, :>, :===].each do |operator|
define_method operator do |operand|
BeComparedTo.new(operand, operator)
end
end
Considerando que, cuando intenta should.be_nil
sólo chequea
object.nil?
https://github.com/rspec/rspec-expectations/blob/master/lib/rspec/matchers/built_in/be.rb
Creo que no hay diferencia, pero se utiliza para la coherencia con otros métodos como be_true
o be_false
.
bajo el capó be
comprueba el id
de ambos elementos:
obras con nil
falla con true
porque en Ruby no todo false
ni nil
es true
falla con false
ya que ambos nil
y false
partido