Kurzreferenz

Rack::Test Spickzettel

Kurzreferenz für Rack::Test: schlanke Test-API für Ruby Rack-, Sinatra- und Rails-Anwendungen.

· Veröffentlicht

Rack::Test ist eine einfache, leichtgewichtige Testbibliothek für Ruby-Anwendungen, die das Rack-Protokoll implementieren, ohne einen HTTP-Server zu starten.

Grundlegendes Setup (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-Anfragemethoden

# GET-Anfrage mit Abfrageparametern
get '/search', q: 'ruby'

# POST-Anfrage mit Formulardaten
post '/users', name: 'Alice', email: '[email protected]'

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

# Datei-Upload
post '/upload', file: Rack::Test::UploadedFile.new('spec/fixtures/avatar.png', 'image/png')

Antworten analysieren

last_response.status          # => 200, 404, etc.
last_response.body            # => Antwort-String
last_response.headers         # => Hash der HTTP-Antwort-Header
last_response.ok?             # => true bei 200..299
last_response.redirect?       # => true bei 301, 302, 303, 307
last_response.location        # => Weiterleitungs-URL

Header & Authentifizierung setzen

# Request-Header setzen
header 'Accept', 'application/json'

# HTTP-Basis-Authentifizierung
authorize 'username', 'secretpassword'

Referenzen

Verwandte Themen