Je suis en train de mettre à jour des rails 4.2.6 aux rails 5.0.0.1 mais obtenir l'avertissement suivant lors de l'exécution de mes tests:Rails 5 avertissement pour les tests deprecation
deprecation AVERTISSEMENT: ActionController :: TestCase HTTP demande Les méthodes n'acceptent que les arguments de mots-clés dans les futures versions de Rails.
Exemples:
get: show, params: {id: 1} session: {user_id: 1} processus: mise à jour, méthode :: poste, params: {id: 1} (appelé du bloc en à /home/ubuntu/workspace/my_app/test/controllers/tractions_controller_test.rb:25)
Je fais des changements appropriés pour tenir compte de ce changement. Cependant, pour la ligne de test d'intégration ci-dessous, je ne sais pas comment changer correctement:
delete api_sessions_path, { api_session: { org_id: nil } }, { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }
Ainsi, les passes de test, mais avec l'avertissement de dévalorisation. Si je le change aux deux options ci-dessous le test échoue avec une erreur de syntaxe. Comment ajuster correctement la ligne?
delete api_sessions_path, params: { api_session: { org_id: nil } }, { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }
delete api_sessions_path, params: { { api_session: { org_id: nil } }, { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email } }
Mise à jour: J'ai aussi essayé d'utiliser session
avec les options ci-dessous, mais qui produit l'erreur ArgumentError: unknown keyword: session
.
delete api_sessions_path, session: { api_session: { org_id: nil } }, params: { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }
delete api_sessions_path, params: { api_session: { org_id: nil } }, session: { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }
delete api_sessions_path, params: { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }, session: { api_session: { org_id: nil } }
delete api_sessions_path, session: { api_session: { org_id: nil } }, { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }
Remarque: Je devine. Les bordures semblent indiquer que vous devrez peut-être utiliser plus de clés de hachage que de paramètres, par exemple en regardant 'get' ici: http://edgeapi.rubyonrails.org/classes/ActionController/TestCase/Behavior.html#method-i -delete montre qu'il y a aussi 'session' et quelques autres. Peut-être que les jetons HTTP doivent utiliser 'session' au lieu de' params'? –
Merci, je l'ai essayé (voir mise à jour pour poster), mais cela ne semble pas fonctionner. – Marty