django :: Aufruf von Middleware in Tests

8

Ich habe eine Middleware-Funktion, die request.foo definiert. Eine Funktion, die ich testen möchte, hängt davon ab, ob foo von der Middleware definiert wird. Wie kann ich diese Funktion testen, da die Middleware während der Tests nicht ausgeführt wird?

Es sollte wirklich eine Funktion geben, die eine Anfrage aufnimmt, die Anfrage über die gesamte Middleware in Reihenfolge ausführt und dann die letzte Anfrage ausspuckt (genau so, wie sie wäre, wenn sie an eine Ansicht übergeben würde). Existiert eine solche Funktion?

Ich könnte die Middleware-Funktion manuell aufrufen, aber das scheint ein Hack zu sein. Was passiert, wenn die getestete Middleware von einer anderen Middleware abhängig ist? Ich würde auf "Middleware-Hölle" stoßen.

& lt; Beispiel & gt;

Middleware-Funktion:

%Vor%

Hier ist die Funktion, die ich testen möchte:

%Vor%

Wie teste ich getBaz ?

& lt; / Beispiel & gt;

& lt; Möglichkeit & gt;

Ich könnte die Middleware manuell ausführen:

%Vor%

aber das scheint wie ein Hack. Was ist, wenn die getestete Middleware von einer anderen Middleware abhängig ist?

& lt; / Möglichkeit & gt;

    
Alexander Bird 30.11.2010, 05:04
quelle

2 Antworten

3

Ich habe Ihre "manuelle" Lösung gesehen, aber ich schlage vor, dass Sie den hier beschriebenen Test-Client in Erwägung ziehen:

Ссылка

Was die Middleware-Abhängigkeit anbelangt, könnten Sie sich über diese Middleware lustig machen.

    
tobych 29.12.2010 18:41
quelle
0

Aus der Spitze meines Kopfes (ich kann diese Idee jetzt nicht testen, aber ich habe das gleiche Problem wie Sie): wäre es eine Lösung, einen Kontextprozessor einzubeziehen, der einfach die Anforderungsvariablen zurückgibt eingefügt von der Middleware-Komponente?

    
LaundroMat 17.03.2011 15:20
quelle

Tags und Links