Sim, é possível, mas a sintaxe que você deseja usar (usando espaços em todos os lugares) tem a implicação que have(:name)
e eq('John')
são todos os argumentos aplicados ao método should
. Então você teria que predefinir aqueles, o que não pode ser seu objetivo. Dito isto, você pode usar RSPEC Matcas personalizados Para atingir um objetivo semelhante:
require 'rspec/expectations'
RSpec::Matchers.define :have do |meth, expected|
match do |actual|
actual.send(meth) == expected
end
end
Isso fornece a seguinte sintaxe:
it { should have(:name, 'John') }
Além disso, você pode usar its
its(:name){ should eq('John') }