Ich habe Clojure in Action Kapitel 8 über TDD gelesen und mit dem Stubbing-Makro experimentiert. Es verwendet den dynamischen Bindungsmechanismus, um Funktionen zu stubben. Leider ist es in Clojure 1.3 nicht möglich, den Bindungsmechanismus für nicht-dynamische vars zu verwenden, so dass das Stubbing-Makro in den meisten Fällen nicht funktioniert, es sei denn, Sie deklarieren explizit die Variable, die auf eine Funktion verweist. Dann habe ich mich gefragt, wie es in Midje ausgeht und versuchte, die Quelle für "zur Verfügung gestellt" zu finden, aber ich konnte es nicht finden. Also hier geht es:
Wie wird "bereitgestellt" in Midje Wirklichkeit? Kann jemand das im Detail erklären?
Clojure 1.3 bietet einen With-redefs-Makro, der auch mit Vars funktioniert, die nicht als dynamisch deklariert wurden:
%Vor%Aus Gründen der Abwärtskompatibilität verwendet Midje eine eigene Version, deren Eingeweide wie folgt aussehen:
%Vor%