Il suffit d'écrire un simple matcher et vous pouvez alors spécifier vos propres messages. Jetez un oeil à ce code:
def be_even
simple_matcher("an even number") { |given| given % 2 == 0 }
end
describe 2 do
it "should be even" do
3.should be_even
end
end
Mettez ce code dans un fichier appelé so_spec.rb et l'exécuter comme ceci:
spec so_spec.rb -f n -c
Cela vous donnera la sortie suivante:
'2 should be even' FAILED
expected "an even number" but got 3
et vous pouvez facilement voir que "un nombre pair" est vraiment le message personnalisé et est plus informatif que prévu vrai obtenu faux. C'est une approche. Cependant, rspec est assez flexible et vous pouvez écrire vos propres matchers personnalisés comme l'a dit BJ Clark et cela vous donnera encore plus de flexibilité. J'ai utilisé à la fois des appariements personnalisés et simples et parfois un simple comparateur est suffisant. Il y a différentes façons d'en choisir une qui répond à vos besoins.