Oui, c'est possible, mais la syntaxe que vous souhaitez utiliser (en utilisant des espaces partout) a l'implication que have(:name)
et eq('John')
tous les arguments sont-ils appliqués à la méthode should
. Vous devriez donc prédéfinir ceux qui ne peuvent pas être votre objectif. Cela dit, vous pouvez utiliser Matchés personnalisés RSPEC Pour atteindre un objectif similaire:
require 'rspec/expectations'
RSpec::Matchers.define :have do |meth, expected|
match do |actual|
actual.send(meth) == expected
end
end
Cela vous donne la syntaxe suivante:
it { should have(:name, 'John') }
Aussi, vous pouvez utiliser its
its(:name){ should eq('John') }