【问题标题】:Capybara rails testing errorCapybara 导轨测试错误
【发布时间】:2016-10-25 21:11:59
【问题描述】:

我是 Rails 新手。我正在使用 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: 'capybaratest@test.ru'
    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

运行测试后出现错误:

未定义的局部变量或方法“用户”

我应该如何正确编写测试?

【问题讨论】:

    标签: ruby-on-rails ruby capybara integration-testing


    【解决方案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: 'capybaratest@test.ru'
        fill_in "Password", with: 'capybara'
        fill_in "Password confirmation", with: 'capybara'
        click_button 'Sign up'
        within("h1") do
          assert has_content?('capybaratest@test.ru')
        end
      end
    end
    

    澄清一下,您将使用user 变量的一种情况是登录流程:在开始测试之前,您将创建一个有效用户并使用此新用户设置user 变量...这样您就可以使用用于创建用户的电子邮件和密码填写电子邮件/密码字段,最后检查它是否显示,即"Welcome #{user.name}"

    【讨论】:

    • 谢谢,对我很有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多