Używam RSpec i jak twierdzirspec jaka jest różnica między być zerowa i be_nil
student.name should be nil
student.name should be_nil
Oba wydają się działać. czy istnieje różnica między używaniem be nil
a be_nil
???
Używam RSpec i jak twierdzirspec jaka jest różnica między być zerowa i be_nil
student.name should be nil
student.name should be_nil
Oba wydają się działać. czy istnieje różnica między używaniem be nil
a be_nil
???
Nie ma żadnej różnicy naprawdę, z wyjątkiem be nil
zostanie określona na bieżąco, a be_nil
został specjalnie zaprogramowany przez RSpec.
kiedy mówisz should.be something
, rspec próbuje następujące
[:==, :<, :<=, :>=, :>, :===].each do |operator|
define_method operator do |operand|
BeComparedTo.new(operand, operator)
end
end
Natomiast przy próbie should.be_nil
po prostu sprawdza
object.nil?
https://github.com/rspec/rspec-expectations/blob/master/lib/rspec/matchers/built_in/be.rb
Myślę, że nie ma różnicy, ale jest używana dla spójności z innymi metodami, takimi jak be_true
lub be_false
.
pod maską be
kontroli właściwy id
obu elementów:
prac z nil
nie z true
ponieważ w Ruby wszystkiego nie false
ani nil
jest true
nie powiedzie się z false
od nil
i false
mecz