2016-10-25 9 views
0

私はレールで新しいです。私は創造性をテストするためにコピーバラの宝石を使用しています。ここで私は、エラーを持ってテストを実行した後にテストコードカピバラのレールテストのエラー

require 'test_helper' 

class UserTasksTest < ActionDispatch::IntegrationTest 
    test 'Should create a new user' do 
    visit root_url 
    click_link 'Sign up' 
    fill_in "Email", with: '[email protected]' 
    fill_in "Password", with: 'capybara' 
    fill_in "Password confirmation", with: 'capybara' 
    click_button 'Sign up' 
    within("h1") do 
     assert has_content?(user.email) 
    end 
    end 
end 

は次のとおりです。

undefined local variable or method `user'

にはどうすれば正常にテストを書くべきですか?

答えて

1

新規ユーザーの作成をテストしており、登録後にメールが表示されることを期待しています。したがって、user変数が定義されていないため、このエラーが発生しています。次のことを試してみてください。

require 'test_helper' 

class UserTasksTest < ActionDispatch::IntegrationTest 
    test 'Should create a new user' do 
    visit root_url 
    click_link 'Sign up' 
    fill_in "Email", with: '[email protected]' 
    fill_in "Password", with: 'capybara' 
    fill_in "Password confirmation", with: 'capybara' 
    click_button 'Sign up' 
    within("h1") do 
     assert has_content?('[email protected]') 
    end 
    end 
end 

だけ明確にするために、あなたはuser変数を使用する1つの状況は、ログインフローすなわちです:あなたが有効なユーザーを作成し、この新しいユーザーでuser変数を設定しますテストを開始する前に...このようにして、ユーザーを作成するために使用された電子メールとパスワードを電子メール/パスワードフィールドに入力し、最終的にそれが"Welcome #{user.name}"かどうかを確認することができます。

+0

ありがとう、本当に役に立った:) –

関連する問題