Référence rapide

Aide-mémoire Rack::Test

Guide de référence rapide pour Rack::Test : API de test légère pour les applications Ruby Rack, Sinatra et Rails.

· Publié le

Rack::Test est une bibliothèque de test simple et légère pour les applications Ruby utilisant le protocole Rack sans démarrer de serveur HTTP.

Configuration de Base (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

Méthodes de Requête HTTP

# Requête GET avec paramètres de requête
get '/search', q: 'ruby'

# Requête POST avec charge utile de formulaire
post '/users', name: 'Alice', email: '[email protected]'

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

# Téléversement de fichier
post '/upload', file: Rack::Test::UploadedFile.new('spec/fixtures/avatar.png', 'image/png')

Inspection des Réponses

last_response.status          # => 200, 404, etc.
last_response.body            # => Corps de réponse
last_response.headers         # => Hash des en-têtes HTTP de réponse
last_response.ok?             # => true si 200..299
last_response.redirect?       # => true si 301, 302, 303, 307
last_response.location        # => URL de destination de redirection

Définition des En-têtes et Authentification

# Définir un en-tête de requête
header 'Accept', 'application/json'

# Authentification basique HTTP
authorize 'username', 'secretpassword'

Références

Sujets associés