Deviseを用いた、有効なユーザー登録に対するintegrationテストを行いたいのですが、
以下のようにRailsチュートリアルと同じようにテスト文を書くと
test "valid signup information" do get new_user_registration_path assert_difference 'User.count', 1 do post user_registration_path, params: { user: { name: "Example User", email: "user@example.com", password: "password", password_confirmation: "password" } } end follow_redirect! assert_template 'users/show' end
ERROR["test_valid_signup_information", UsersSignupTest, 0.8146959589976177] test_valid_signup_information#UsersSignupTest (0.81s) ActionView::Template::Error: ActionView::Template::Error: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true app/views/devise/mailer/confirmation_instructions.html.erb:5:in `_app_views_devise_mailer_confirmation_instructions_html_erb___1932311508650289501_54783100' test/integration/users_signup_test.rb:19:in `block (2 levels) in <class:UsersSignupTest>' test/integration/users_signup_test.rb:18:in `block in <class:UsersSignupTest>'
と、エラー文が出てしまいます。。
confirmableを使用しているので、email確認画面が描画されないとテストがパスしないのでしょうか?
Unitテストでは、ユーザーをsaveする前に、skip_confirmation!メソッドでemail確認をパスできるとあり、そちらはテストは成功できたのですが。。
なかなか調べても解決できず、お力をお貸しいただけたらと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。