Qu'est-ce que cette déclaration par défaut RSpec signifie?
-
01-10-2019 - |
Question
User.should_receive(:update_attributes).with({'these' => 'params'})
Qu'est-ce que ça veut dire de déclaration? these
n'instancié nulle part comme signifiant rien.
L'ensemble de la déclaration est la suivante:
describe "with valid params" do
it "updates the requested user" do
User.should_receive(:find).with("37") { mock_user }
User.should_receive(:update_attributes).with({'these' => 'params'})
put :update, :id => "37", :user => {'these' => 'params'}
end
Je dis cela parce que je reçois une erreur:
unknown attribute: these
Ce qui vient du scénario ci-dessus ..
La solution
Il dit que la méthode update_attributes
doit être invoquée sur le modèle User
avec un argument de {'these' => 'params'}
pendant tout essai est en cours d'exécution.
En fait ce qui suit devrait se produire au cours de l'exécution:
User.update_attributes({'these' => 'params'})
Plus d'informations ici: http://rspec.info/documentation/mocks/message_expectations.html
Autres conseils
Vous ne devez pas remplacer le hachage ({ 'ces' => 'params'}). Pensez-y comme un contrat. Je l'ai dit que quand je mets, le hachage suivant doit être reçu par le modèle de mes objets. Dans la ligne suivante, vous appelez la méthode de mise à jour et le contrat est cochée.