【问题标题】:Ruby on Rails, jwt auth, capybara cucumber testingRuby on Rails、jwt auth、capybara 黄瓜测试
【发布时间】:2018-10-09 10:49:51
【问题描述】:

我有 Ruby on Rails 后端和一个安装 ReactJS 前端的视图。通过 devise + jwt 进行身份验证。我使用黄瓜水豚来测试前端。如何登录测试?如何在测试步骤中将 jwt 放入标头中?

功能

...
  Background:
   Given I am loged in user   
...

步骤

Given(/^I am loged in user$/) do
  how can I put jwt in headers here?
end

【问题讨论】:

  • 您为什么需要这样做。您可以使用 Capybara 之类的工具访问该页面,填写表格并提交。

标签: ruby-on-rails devise cucumber capybara


【解决方案1】:

您可以创建一个帮助器来填写您的登录表单,如下所示:

# spec/support/features_helpers.rb

def login_user(user=nil)
  visit '/#/login'

  within '#login_form' do
    fill_in 'email', with: user.email
    fill_in 'password', with: 'foobarfoo'
    page.find('button').click
  end

  expect(page).to have_no_css '#login_form'
end

然后在你的测试中使用:

let(:user) { create(:user) }

before do
  login_user user
end

it '...' do
  ...
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多