Je travaille sur une application où la plupart, sinon la totalité, des données est portée à current_organization
. Donc, dans ma trouvaille appels dans mes contrôleurs, j'ai des choses comme celle-ci par exemple:Comment bien bouter une méthode d'association Rails via moka et test/unit?
def show
@user = current_organization.users.find(params[:id])
end
Cependant, dans mes tests de contrôleur, je vais avoir du mal à comprendre la bonne façon (ou tout autre moyen) à talon ces appels afin que je puisse tester des choses comme:
get :show, :id => 1
assert_response :success
Ceux-ci sont ne pas dire « AR ne peut pas trouver l'utilisateur avec ID = 1 et organization_id = 3 » ou autre chose. Peu importe ce que j'essaie, je n'arrive pas à le contourner.
Mon bloc de configuration ressemble à ceci:
setup do
company = organizations(:company) # fixture
@controller.stubs(:current_organization).returns(company)
# now what do I stub, if anything?
end
J'ai essayé de faire des choses comme: company.stubs(:users).returns([users(:one), users(:two)])
mais cela ne fonctionne pas parce que l'appel AR find()
n'existe pas pour un tableau de base.
Devrais-je définir le tableau des faux utilisateurs comme une variable comme fake_users
et ensuite faire quelque chose comme fake_users.stubs(:find).returns(@user)
? Cela ne me semblait pas juste, mais c'est peut-être la bonne façon.
Je suis juste à la recherche de la meilleure façon de gérer cela. J'utilise moka et test/unité, si cela compte ou aide.
Merci!
Merci, cela devrait fonctionner pour ce dont j'ai besoin. – rpheath