Je voudrais vérifier si ma classe crée un nouvel objet et renvoie une instance de celui-ci. Mon idée était de combiner change
matcher avec be_instance_of
matcher mais RSpec ne permet pas de le faire.RSpec combiner le matcher de bloc avec matcher non-bloc
expect { subject.call }.to change { Model.count }.by(1).and be_an_instance_of(Model)
Je ne veux pas le diviser en deux différents expects
avec un sans bloc pour éviter de multiples invocations de la même méthode.
Quelle est l'approche générale de ce genre de situations? Comment dois-je gérer mon cas?
... Ou faites simplement deux tests, pas un. Si 'subject' n'est pas une opération coûteuse (lente), c'est la pratique normale. –
Merci! Je n'ai pas pensé à le mettre dans le sujet. Passé plus d'une heure à essayer de le résoudre par la manière différente, mais il était si simple ... – Gregy
@TomLord bien sûr on peut le faire, mais à partir de la question, j'ai eu l'impression qu'il veut l'éviter. – meta