12 Stimmen

Gibt es ein Mocking/Stubbing-Framework für Common Lisp?

Gibt es ein Mocking/Stubbing-Framework für Common Lisp?

EmacsLispMock sieht toll aus, aber es ist ein Emacs-Lisp-Framework, und ich bin auf der Suche nach etwas von Common Lisp zu verwenden.

Irgendwelche Vorschläge?

1voto

Thayne Punkte 6281

Ich habe eine Bibliothek mit einem Makro geschrieben, das der Antwort von @6502 sehr ähnlich ist ( with-mocked-functions ), sondern ein wenig allgemeiner. Sie bietet auch with-added-methods die es Ihnen ermöglicht, Mock-Methoden für einen begrenzten dynamischen Bereich zu schreiben. Sie können es hier finden: https://github.com/bytecurry/bytecurry.mocks

0voto

Marko Punkte 29192

Sie können versuchen, die Neudefinition einer Funktion in ein Makro zu packen

(defmacro with-fun (origfn mockfn &body body)
  `(let ((it ,origfn))
      (setf ,origfn ,mockfn)
     ,@body
      (setf ,origfn ,it)))

Dies ist nur eine Idee, und Sie müssen ein solches Makro implementieren. Sie können googeln nach profile Implementierung, die genau das tut: eine Funktion durch eine andere ersetzen und Informationen zur Profilerstellung hinzufügen. Sie können einige Ideen von dort übernehmen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X