Heroku kann aus verschiedenen Gründen ein SIGTERM an Ihre Anwendung senden. Daher habe ich einen Handler erstellt, der für einige Aufräumarbeiten sorgt, falls dies passiert. Beim Googlen gibt es keine Antworten oder Beispiele dafür, wie man das in RSpec testet. Hier ist der grundlegende Code:
%Vor%Was ist der beste Weg zu testen, dass diese Bereinigungsmethode aufgerufen wird, wenn das Programm ein SIGTERM empfängt?
Töte dich selbst! Senden Sie das Signal an RSpec mit Process.kill 'TERM', 0
und testen Sie, ob der Handler aufgerufen wurde. Wenn das Signal nicht abgefangen wird, stürzt der Test ab, anstatt einen Fehler zu melden, aber zumindest wissen Sie, dass ein Problem in Ihrem Code vorliegt.
Zum Beispiel:
%Vor%Ich habe lediglich getestet, dass der Handler aufgerufen wurde, aber Sie könnten genauso gut einen Nebeneffekt des Handlers testen.
Tags und Links ruby unit-testing signals rspec sigterm