Aujourd'hui, j'ai rencontré un problème en utilisant RoR pour remplacer les appels aux objets AR. Je pensais que je serais capable de faire quelque chose le long des lignes de:Comment faire pour que instance_of fonctionne avec les objets ActiveRecord dans RoR?
stub.instance_of(BankAccount).save_to_other_spot { true }
Cependant quand j'ai essayé cette méthode, il ne semble pas bouchonner la méthode du tout et finirais en cours d'exécution de la méthode originale I essayait de talonner. Je confirme ce débogueur en utilisant etc.
Je fini par utiliser la méthode suivante:
stub.proxy(BankAccount).find(anything) do |account|
stub(account).save_to_other_spot { true }
account
end
Cela fonctionne.
Je me demandais si je faisais quelque chose de mal? Pourquoi le paramètre instance_of ne fonctionne-t-il pas comme je le souhaite?
Un autre problème que j'ai rencontré, c'est que dans mes tests RSpec, il semble que je devais configurer mes mock et stubs pour chaque requête. Encore une fois, est-ce normal ou est-ce que je fais quelque chose de mal?
Par cela, je veux dire que je devais faire quelque chose comme:
... mock and stub ...
get :show, :id => @id
... mock and stub ...
post :update, :id => id, :account => { ... params ... }
Je pensais que je serais capable de se moquer de fois et le talon en haut.