Ich schreibe ein Kochbuch mit benutzerdefinierten Ressourcen, die (unter anderem) validiert SSH-Schlüssel durch ssh-keygen
. Ich muss das Szenario testen, in dem der Benutzer ungültige Eingaben eingibt, und die Ressource sollte entsprechend der Ausnahme erhöhen, also suche ich nach einer Möglichkeit, zu überprüfen, ob 'folgende Eingabe gegeben wird ... Chef läuft fehlgeschlagen'.Testen Koch Kochbuch Fehler
Wenn ich alles richtig verstehe, bedeutet Test Kitchen, dass jede Konvergenz erfolgreich endet, und ChefSpec impliziert, dass Ressourcen nie wirklich ausgeführt werden (also werden meine ssh-keygen Aufrufe nie aufgerufen).
Gibt es herkömmliche Möglichkeiten, einen solchen Fall zu testen?
Ja, die shellout Ruf als jede andere Bibliothek spöttisch, wie dokumentiert [hier] (https://github.com/chefspec/chefspec#ruby-libraries-file-fileutils-etc) auf ChefSpec readme. Und erwarte, dass es eine Ausnahme macht, sollte dies der ganzen Sache entsprechen. – Tensibai
Sollte dies auf eine Antwort kopieren :) – coderanger
@Tensibai das eigentliche Problem ist nicht verspotten, ich denke, ich war zu präzise über Kochbuch Interna reden. Ich muss testen, dass meine Ressource wie erwartet auf verschiedene Antworten von ssh-keygen reagiert, aber ChefSpec führt meine Ressource nicht aus - soweit ich weiß, ist dies der absichtlich nur Modus von ChefSpec. In der Tat kann ich testen, ob meine Ressource irgendwo aufgerufen wurde, kann "only_if"/"not_if" Wächter testen, aber nicht das Ressourcenverhalten selbst. – Etki