J'essaie d'écrire un matcher qui transforme un objet en un Hash avant de le comparer à la valeur attendue (disons que je veux comparer 2 hashes sans me soucier du fait que les clés sont des chaînes ou des symboles).
Je peux facilement définir un matcheur en faisant ceci
RSpec::Matchers.define :my_matcher do |content|
match { |to_match| my_hash_conversion(to_match) == my_hash_conversion(content)
diffable
end
J'ajoute diffable
Ainsi, rspec affiche la différence entre les deux objets lorsqu'ils ne correspondent pas. Cependant, je veux afficher la différence des objets convertis et non celle de l'objet original ?
J'ai vu qu'il y a quelque part dans Rspec une classe Differ et une fonction diff_with_hash, mais je n'ai aucune idée de comment l'utiliser (car elle n'est pas vraiment documentée).