Ich pflege eine Web-API in Ruby geschrieben. Es verbindet sich mit vielen Webdiensten von Drittanbietern. Beim Schreiben von Tests stubele ich jede Funktion, die eine Verbindung zum Netzwerk herstellen und stattdessen abgefüllte Daten zurückgeben müsste.Kann verhindert werden, dass eine Ruby-Instanz die Netzwerkverbindung öffnet?
Es ist mir schon passiert, dass ich diesen Stubbing-Schritt vergesse und meine Integrationstests tatsächlich mit einem Drittanbieter-Dienst verbunden werden.
In diesem Sinne möchte ich verhindern, dass Ruby Netzwerkverbindungen öffnen kann. Wenn es versucht wird, möchte ich stattdessen eine Ausnahme auslösen, die darauf hinweist, welche Funktion ich vergessen habe.
Ist das möglich? Welche zentrale Ruby-Funktion müsste ich überschreiben, um dies mit minimalen anderen Nebenwirkungen zu erreichen?
Leider scheint dies nur HTTP-Verbindungen zu deaktivieren ... Bibliotheken wie [ruby-ldap] (https://github.com/ruby-ldap/ruby-net-ldap) dürfen sich weiterhin über TCP-Verbindungen verbinden. – Hubro