Я использую RSpec и утверждает, какRSpec чем разница между быть нулем и be_nil
student.name should be nil
student.name should be_nil
И, кажется, работают. есть ли разница между использованием be nil
a be_nil
???
Я использую RSpec и утверждает, какRSpec чем разница между быть нулем и be_nil
student.name should be nil
student.name should be_nil
И, кажется, работают. есть ли разница между использованием be nil
a be_nil
???
Там нет никакой разницы на самом деле, за исключением be nil
получает определенные на лету, и be_nil
был специально запрограммирован RSpec.
когда вы говорите should.be something
, RSpec пытается следующее
[:==, :<, :<=, :>=, :>, :===].each do |operator|
define_method operator do |operand|
BeComparedTo.new(operand, operator)
end
end
В то время, когда вы пытаетесь should.be_nil
он просто проверяет
object.nil?
https://github.com/rspec/rspec-expectations/blob/master/lib/rspec/matchers/built_in/be.rb
Я думаю, что нет никакой разницы, но он используется для согласованности с другими методами, такими как be_true
или be_false
.
Под капотом be
проверок id
обоих элементов:
работ с nil
терпит неудачу с true
, потому что в Ruby, все, что не false
ни nil
является true
терпит неудачу с false
, так как оба nil
и false
матч