Краткий справочник

Шпаргалка по Rack::Test

Краткий справочник по Rack::Test: легковесный API для тестирования приложений Ruby Rack, Sinatra и Rails.

· Опубликовано

Rack::Test — это простая и легковесная библиотека тестирования для приложений Ruby, поддерживающих протокол Rack, без необходимости запускать HTTP-сервер.

Базовая настройка (RSpec / Minitest)

require 'rack/test'

class AppTest < Minitest::Test
  include Rack::Test::Methods

  def app
    MySinatraApp
  end

  def test_homepage
    get '/'
    assert last_response.ok?
    assert_equal 'Hello World', last_response.body
  end
end

Методы HTTP-запросов

# GET-запрос с параметрами строки запроса
get '/search', q: 'ruby'

# POST-запрос с данными формы
post '/users', name: 'Alice', email: '[email protected]'

# PUT и DELETE
put '/users/1', status: 'active'
delete '/users/1'

# Загрузка файлов
post '/upload', file: Rack::Test::UploadedFile.new('spec/fixtures/avatar.png', 'image/png')

Проверка ответов

last_response.status          # => 200, 404 и т. д.
last_response.body            # => Строка тела ответа
last_response.headers         # => Хэш HTTP-заголовков ответа
last_response.ok?             # => true для кодов 200..299
last_response.redirect?       # => true для 301, 302, 303, 307
last_response.location        # => URL перенаправления

Установка заголовков и аутентификация

# Установка заголовка запроса
header 'Accept', 'application/json'

# Базовая HTTP-аутентификация (Basic Auth)
authorize 'username', 'secretpassword'

Ссылки

Связанные темы