Kann ich eine Nachricht in Vor- und Nachbedingungen einfügen?

8

Ich habe (not (some #(= (:length %1) 0) %)) als Nachbedingung. So geschrieben, ist es ziemlich klar, aber wenn diese Bedingung nicht erfüllt ist, bekomme ich das:

%Vor%

Was nicht gut lesbar ist. Gibt es eine Möglichkeit, die Nachricht für eine Nachbedingung oder für eine Vorbedingung zu definieren?

Bearbeiten 1:

Nach noahlz und noisemiths suggestion (aber mit einer externen benannten Funktion):

%Vor%

gibt:

%Vor%

Was viel klarer ist.

    
snowape 30.06.2013, 13:42
quelle

3 Antworten

7

Dies wird in der folgenden clojure Mailingliste thread besprochen.

Mit Blick auf die clojure.core Quelle können Sie Das FN-Makro wird nur in einem booleschen Wert an die assert-Funktion übergeben und enthält keinen optionalen Parameter für die Übergabe eines zusätzlichen Nachrichtenarguments.

Es sieht also so aus, als ob es noch keine Möglichkeit gibt, das sauber zu machen.

    
O.Powell 30.06.2013, 17:14
quelle
2

erweitert einen Vorschlag oben:

%Vor%

Wenn Sie eine anonyme Funktion benennen, werden alle Fehler, die mit diesem fn verbunden sind, besser lesbar gemacht.

auch, wie ist es, dass Sie zwei% Substitutionen oben haben? # () verschachtelt nicht.

    
noisesmith 01.07.2013 01:11
quelle
2

Dieser Beitrag im selben Thread weist auf die Verwendung des Makros clojure.test / is hin , die eine sinnvolle Fehlermeldung zurückgibt.

%Vor%

gibt

zurück %Vor%     
shark8me 20.04.2017 08:21
quelle

Tags und Links