2016-10-25 114 views
0

我是新的導軌。我使用copybara gem來測試設計。下面是測試代碼水豚導軌測試錯誤

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變量一個情況,即登錄流程:在開始測試之前,你將創建一個有效的用戶,並與這個新的用戶設置的user變量...通過這種方式,您將能夠使用用於創建用戶的電子郵件和密碼填寫電子郵件/密碼字段,並最終檢查它是否顯示,如"Welcome #{user.name}"

+0

謝謝,真的對我有幫助:) –