Где / как включить вспомогательные методы для интеграционных тестов капибары - PullRequest
27 голосов
/ 19 ноября 2011

Я использую капибару для своих интеграционных / приемочных тестов. Они находятся в папке /spec/requests/. Теперь у меня есть несколько вспомогательных методов, которые я использую во время приемочных тестов. Один из примеров - register_user, который выглядит следующим образом

def register_user(user)
  visit home_page
  fill_in 'user_name', :with => user.username
  fill_in 'password', :with => user.password
  click_button 'sign_up_button'
end

Я хочу использовать этот метод в нескольких различных приемочных тестах (они находятся в разных файлах). Какой лучший способ включить это? Я пытался вставить его в spec/support/, но он неработал на меня. Потратив некоторое время на это, я понял, что даже не знаю, является ли это хорошим способом сделать это, поэтому я решил спросить здесь.

Примечание: я использую рельсы 3,spork и rspec.

Ответы [ 3 ]

38 голосов
/ 19 ноября 2011

Поместите вашего помощника в папку spec / support и сделайте что-то вроде этого:

spec / support /:

module YourHelper
  def register_user(user)
    visit home_page
    fill_in 'user_name', :with => user.username
    fill_in 'password', :with => user.password
    click_button 'sign_up_button'
  end
end

RSpec.configure do |config|
  config.include YourHelper, :type => :request
end
16 голосов
/ 31 августа 2013

Я использовал данное решение @VasiliyErmolovich, но я изменил тип, чтобы он работал:

config.include YourHelper, :type => :feature
0 голосов
/ 20 августа 2018

Явный способ с ruby ​​

Использование include:

# spec/support/your_helper.rb
class YourHelper
  def register_user(user)
    visit home_page
    fill_in 'user_name', :with => user.username
    fill_in 'password', :with => user.password
    click_button 'sign_up_button'
  end
end

describe MyRegistration do
  include YourHelper

  it 'registers an user' do
    expect(register_user(user)).to be_truthy
  end
end
...