加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Capybara webkit不会从有角度传递params

发布时间:2020-12-17 03:41:39 所属栏目:百科 来源:网络整理
导读:我正在尝试将selenium测试套件移植到capybara-webkit. Rails应用程序在rails视图中嵌入了一个角度应用程序,并且不像webkit那样表现. 像这样的测试: 需要’spec_helper’ feature 'Editing company profiles' do before do @user = create(:employee) @compa
我正在尝试将selenium测试套件移植到capybara-webkit. Rails应用程序在rails视图中嵌入了一个角度应用程序,并且不像webkit那样表现.

像这样的测试:

需要’spec_helper’

feature 'Editing company profiles' do
  before do
    @user = create(:employee)
    @company = Company.find(@user.employer.id)
    sign_in_as! @user
  end

  scenario 'successfully',js: true do
    click_link 'Dashboard'
    click_link @company.name
    click_button 'Edit'
    fill_in 'company_name',with: 'new name'
    click_button 'Save'

    expect(page).to have_content "Your company profile has been updated!"
  end
end

会在selenium中没有问题,但是使用webkit我会收到错误

Failure/Error: Unable to find matching line from backtrace
 ActionController::ParameterMissing:
   param is missing or the value is empty: company
 # ./app/controllers/api/v1/companies_controller.rb:23:in `company_params'
 # ./app/controllers/api/v1/companies_controller.rb:10:in `update'

缺少痕迹,可能是因为它来自有角度的土地,但错误是报告没有来自客户端的参数.我已经尝试了水豚角宝石,但它没有帮助.我也尝试用capybara保存页面,没有什么看起来不合适,有没有办法访问在这个测试中生成的webkit内部的PATCH请求?我也遇到了与恶作剧家一样的错误.

有没有人用角轨设置无头rspec测试?有关如何调试数据未从客户端发送的任何提示?

解决方法

在没有看到所有代码的情况下,这感觉可能是与 capybara-webkit gem中的 known issue相关联的问题无法将实体主体传递到服务器.

我怀疑更新请求是作为PATCH请求发送的(这是合适的),但是gem的问题导致测试失败.

解决您的问题的方法是将请求的方法更改为PUT或POST,上面链接的问题显示了一些选项.您将能够通过测试,但由您自行决定更改请求类型是否值得让您的测试通过.

注意:在实践中,如果你实际上没有使用PATCH可能无关紧要,因为你可以在技术上交替使用(某些)其他http方法 – 但要小心,因为有理由在特定情况下使用特定的http方法.有关详细信息,请参阅几年前的这篇rubyonrails.org帖子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读