rails 5方法不允许测试环境水豚

时间:2017-07-24 20:24:46

标签: capybara ruby-on-rails-5

我有以下水豚功能场景:

scenario 'user can create an account' do
  visit new_user_path
  within(:css, "form[action='/users']") do
    fill_in 'user[username]', with: 'dummy'
    fill_in 'user[email]', with: 'dummy@email.com'
    fill_in 'user[password]', with: 'password'
    fill_in 'user[password_confirmation]', with: 'password'
    fill_in 'user[address]', with: 'brasilia'
    find("input[type='submit']").click
  end
  expect(page).to have_current_path(root_path)
end

当我执行它时,我收到以下错误:

1) CreateAccount user can create an account
 Failure/Error: expect(page).to have_current_path(root_path)
   expected "/users" to equal "/"
 # ./spec/features/create_account_spec.rb:14:in `block (2 levels) in <top (required)>'

所以我在开发环境中使用相同的参数测试,一切正常。我在场景中使用了save_and_open_screenshot,我收到了这条消息:

Method not Allowed

我不知道发生了什么。在此先感谢您的帮助!

编辑1

我检查日志但是我无法看到任何请求,但只有与数据库相关的错误。在这里我找到了:

SELECT schemaname || '.' || tablename
            FROM pg_tables
            WHERE
              tablename !~ '_prt_' AND
              tablename <> 'schema_migrations' AND
              schemaname = ANY (current_schemas(false))

我不知道这是否会有所帮助,但唯一的日志片段看起来像是一个错误。

编辑2

我运行rails s -e test并发现在发出请求的表单标记中缺少hidden_​​tag authencity标记。这可能是method not allowed的原因吗?

0 个答案:

没有答案