[RUBY] Que faire si vous obtenez une erreur d'argument: nombre incorrect d'arguments (donné 2, attendu 0) dans votre test RSpec

introduction

Lors de l'exécution des tests RSpec

   Failure/Error:
       post login_path, params: { session: { email: user.email,
                                             password: user.password } }

     ArgumentError:
       wrong number of arguments (given 2, expected 0)

Il a fallu du temps pour résoudre l'erreur, je vais donc l'écrire.

contenu de l'erreur

Cette erreur est dite égale à 0 pour "l'argument de l'appelant" (donné 2) et 2 pour "l'argument formel côté méthode" (attendre 0). Cela signifie que les valeurs ne sont pas alignées pour une raison quelconque.

Cause de l'événement

Dans le code RSpec

let!(:post) { create(:post, user: user) }

Parce que le message du post login_path, params: {session: {}} appelle let! (: Post) dans le code RSpec au lieu du post tel que get, post, delete.

Solutions

Changez simplement le nom du code que vous aviez précédemment.

let!(:new_post) { create(:post, user: user) }

référence

https://qiita.com/yo0917/items/20c165a3b06805bf2e37

finalement

C'est peut-être une erreur très rudimentaire, mais j'étais vraiment ennuyé quand j'ai écrit RSpec, donc je continuerai à faire de mon mieux pour le résoudre. Je souhaite également améliorer mes compétences en écriture.

Recommended Posts

Que faire si vous obtenez une erreur d'argument: nombre incorrect d'arguments (donné 2, attendu 0) dans votre test RSpec
Que faire si vous obtenez une erreur de nombre d'arguments erroné dans binding.pry
[RSpec] ArgumentError: nombre incorrect d'arguments Si vous obtenez une erreur, vous devrez peut-être vous soucier de la dénomination des variables.
Que faire si vous obtenez une erreur «302» dans le code de test du contrôleur dans Rails
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Que faire si vous entrez gem'bcrypt 'dans votre Gemfile et obtenez une erreur avec l'installation du bundle
Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium
Que faire si vous obtenez une erreur gcc dans Docker
Que faire si vous obtenez une [Une requête HTTP a pris trop de temps à se terminer.] Erreur dans Docker.
ArgumentError (nombre incorrect d'arguments (donné 0, attendu 1)) message d'erreur
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
[Rails] Comment résoudre un nombre incorrect d'arguments (donné 2, attendu 0..1) pour user_id
Que faire si vous obtenez une erreur de bibliothèque partagée JNI lorsque vous essayez de créer avec Eclipse
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
Que faire si une erreur ActionController :: UnknownFormat se produit
Que faire si Failure / Error: require File.expand_path ('../ config / environment', __dir__) apparaît dans RSpec
Que faire si vous obtenez une erreur indiquant "Veuillez saisir une valeur valide" lors de l'obtention avec Rails datetime_field
Que faire si le message d'erreur "Impossible de trouver un moteur d'exécution JavaScript" s'affiche lors du démarrage du serveur rails
[Rails] Que faire si vous effectuez accidentellement une installation groupée dans un environnement de production de votre environnement local
Que faire si vous obtenez d'autres occurrences d'erreurs d'analyse de l'en-tête http seront consignées au niveau de débogage. Dans Tomcat 8.5.37
Que faire si vous obtenez ActiveRecord :: StatementInvalid: Mysql2 :: Error: Vous avez une erreur dans votre syntaxe SQL; vérifiez le manuel qui correspond à la version de votre serveur MySQL pour la bonne syntaxe à utiliser lorsque vous essayez de réinitialiser Heroku
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
Que faire si vous oubliez votre mot de passe root sur CentOS7
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
Que faire si vous obtenez l'erreur Trop long sans sortie (dépassé 10m0s) dans CircleCI
Ajouter gem'rails-i18n ',' ~> 6.0.0 'et que faire si l'installation du bundle donne une erreur
Que faire si une erreur se produit lorsque nokogiri entre lors de l'installation du bundle
il ne reste plus d'espace sur l'appareil Que faire en cas d'erreur
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub
[Rails] Que faire si vous obtenez une erreur indiquant "Impossible de trouver un moteur d'exécution JavaScript." Lors de l'exécution de la commande rails dans Catalina
Que faire si vous obtenez Impossible d'enregistrer la table principale dans un fichier après l'importation d'un projet dans Eclipse
Comment traduire le message d'erreur en japonais (que faire si vous ne pouvez pas vous connecter pour une raison quelconque)
[Swift] Comment obtenir le nombre d'éléments dans un tableau (super basique)
Si vous souhaitez satisfaire la couverture de test des méthodes privées dans JUnit
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
wildflly10 java8 ERROR [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (récupération périodique) IJ000906 Que faire en cas d'erreur
Que faire quand Pour installer la version manquante, exécutez `gem install bundler: 2.1.4`
Que faire si l'installation de ffi échoue lors du lancement d'une application dans Rails
Ce que vous devez savoir avant d'écrire un test dans une application iOS