LoginSignup
4
4

More than 3 years have passed since last update.

RSpecのテストでArgumentError: wrong number of arguments (given 2, expected 0)が出た時の対処法

Last updated at Posted at 2020-10-26

はじめに

RSpecのテストを実行したときに

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

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

と出てエラー解決に時間がかかったので書いていきます。

エラー内容

このエラーは「呼び出し側の引数」(given 2)と2に対して「メソッド側の仮引数」(expect 0)で0ですよと言われています。何らかの理由で値にズレが生じているということです。

発生した原因

RSpecのコード内で

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

という記述をしていて、post login_path, params: { session: { } }のpostがget,post,deleteなどのpostではなくてRSpecコード内のlet!(:post)を呼び出してしまっているから。

解決方法

先ほどあったコードの名前を変えてあげるだけです。

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

参照

最後に

すごい初歩的なミスかもしれませんがRSpec書きたての僕はすごい悩まされたので今後も頑張って解決していきたいです。
文章力も上げていきたいです。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4