2016-01-11 3 views
0

Я работаю на 10-й главе рубина на рельсы учебник и получаю ошибку последующей:UserMailerTest ArgumentError: неверное число аргументов (0 для 1)

UserMailerTest#test_account_activation: 
ArgumentError: wrong number of arguments (0 for 1) 
app/mailers/user_mailer.rb:3:in `account_activation' 
test/mailers/user_mailer_test.rb:6:in `block in <class:UserMailerTest>' 

Я не уверен, что вызывает ошибка, так как коды те же, что и коды из учебника. Есть идеи?

user_mailer.rb

class UserMailer < ApplicationMailer 
def account_activation(user) 
    @user = user 
    mail to: user.email, subject: "Account activation" 
end 

def password_reset 
    @greeting = "Hi" 
    mail to: "[email protected]" 
    end 
end 

application_mailer.rb

class ApplicationMailer < ActionMailer::Base 
    default from: "[email protected]" 
    layout 'mailer' 
end 

routes.rb

Rails.application.routes.draw do 

get 'sessions/new' 

root 'welcome#index' 

get 'contact' => 'welcome#contact' 
get 'about' => 'welcome#about' 
get 'signup' => 'users#new' 
get 'login' => 'sessions#new' 
post 'login' => 'sessions#create' 
delete 'logout' => 'sessions#destroy' 

resources :users 
resources :account_activations, only: [:edit] 
match ':controller(/:action(/:id))', :via => :get 
end 

user_mailer_test.rb

require 'test_helper' 

class UserMailerTest < ActionMailer::TestCase 
test "account_activation" do 
    mail = UserMailer.account_activation 
    assert_equal "Account activation", mail.subject 
    assert_equal ["[email protected]"], mail.to 
    assert_equal ["[email protected]"], mail.from 
    assert_match "Hi", mail.body.encoded 
end 

test "password_reset" do 
    mail = UserMailer.password_reset 
    assert_equal "Password reset", mail.subject 
    assert_equal ["[email protected]"], mail.to 
    assert_equal ["[email protected]"], mail.from 
    assert_match "Hi", mail.body.encoded 
end 

end 

Спасибо!

ответ

0

В вашем тесте вы вызываете UserMailer.account_activation, но этот метод принимает пользовательский параметр, поэтому вам нужно передать его.

+0

Я вижу, это исправлено. благодаря! –

Смежные вопросы