Ruby on Railsのチュートリアル7章の7.3.4でテスト実行時に下記エラーが出たので対処法を共有します。
Error: UsersSignupTest#test_invalid_signup_information: ArgumentError: wrong number of arguments (given 2, expected 1) test/integration/users_signup_test.rb:8:in `block (2 levels) in <class:UsersSignupTest>' test/integration/users_signup_test.rb:7:in `block in <class:UsersSignupTest>'
test/integration/users_signup_test.rb 変更前
require 'test_helper' class UsersSignupTest < ActionDispatch::IntegrationTest test "invalid signup information" do get signup_path assert_no_difference 'User.count' do post users_path, params: { user: { name: " ", email: "user@invalid", password: "foo", password_confirmation: "bar" } } end assert_template 'users/new' end end
test/integration/users_signup_test.rb 変更後
require 'test_helper' class UsersSignupTest < ActionDispatch::IntegrationTest test "invalid signup information" do get signup_path assert_no_difference 'User.count' do post users_path params: { user: { name: " ", email: "user@invalid", password: "foo", password_confirmation: "bar" } } end assert_template 'users/new' end end
8行目のカンマを消すと上手く通りました。Rubyの引数の仕様変わったんですかね?原因不明です。誰か教えてください。。。
2021/05/05追記:Rubyのバージョンが原因でした。Ruby 3.0以上だとダメでRuby 2.7ならエラー無くなりました。本記事の対処方法だと、10章のpatchで詰みます笑
コメント