VCR Tests mit Custom matcher

05.03.2014 - Simplificator

VCR ist ein Library um Tests zu schreiben welche HTTP Requests auf externe Services machen.

VCR nimmt die Anfragen an den Service auf und spielt die Antworten bei bedarf wieder ab. Somit können Tests beschleunigt und unabhängig von externen Diensten gemacht werden.

Um zu bestimmen ob eine aufgenommene Antwort wieder abgespielt werden soll, greift VCR auf Request Matchers zurück. Nebst diversen bereits vorhandenen Matchern kann VCR um eigene Matchers erweitert werden.

Ein Matcher ist ein “callable” welches zwei Argumente nimmt (zwei Requests welche verglichen werden müssen) und ein Boolean wert zurückgibt.

do |a, b|
  true
end

Ein einfacher (und nutzloser) Matcher.

Man kann Custom Matcher einsetzen um z.B. bestimmte Parameter zu ignorieren oder Host Name basiertes loadbalancing (api1.foo.com, api2.foo.com…) abzudecken.