Je commence à tester des stratégies et des moqueurs, et j'ai du mal à comprendre comment se moquer d'un appel à un service externe. Je suis sûr que c'est quelque chose de facile qui me manque, je ne sais pas exactement quoi. J'utilise la gemme Braintree pour facturer des services d'abonnement via la passerelle Braintree, et je voulais me moquer de la méthode de création du client et de la méthode de création d'abonnement dans la méthode create de mon UserController.Se moquer d'une API externe
Une méthode Customer.create ressemble à quelque chose comme ceci:
result = Braintree::Customer.create(
:first_name => @creditcard.first_name,
:last_name => @creditcard.last_name,
:email => @user.email
:credit_card => {
...
}
}
)
Ce retourne un objet Braintree :: Succès de résultat, avec les attributs du résultat traité.
Je me dis que je dois faire quelque chose comme:
Braintree::Customer.expects(:create).returns(...)
Mais ce qui se passe dans la zone de retour? Ai-je besoin de créer mon propre objet Successful mocked avec les attributs d'un résultat traité faux, ou existe-t-il un moyen plus facile de faire tout cela?
Merci pour toute aide que vous pouvez fournir.
Vous devez retourner un objet qui est ou « charlatans comme » un Braintree :: Client parfois je viens d'utiliser un OpenStruct – rogerdpack
Ahh, je pense que c'est exactement le genre de chose que je suis à la recherche. Juste quelque chose pour imiter la même structure de base. Merci! – joeellis