Komponententest Groovy2.0 mit Spock: setup ()

8

Ich schreibe Komponententest mit Spock für groovy-2.0 und benutze Gradle zum laufen. Wenn ich nach dem Testpass schreibe.

%Vor%

myMethod () ist eine einfache Methode in der DSLValidator-Klasse, die einfach true zurückgibt.

Aber wenn ich eine setup () -Funktion schreibe und das Objekt in setup () erstelle, schlägt mein Test fehl: Gradel sagt: FAILED: java.lang.NullPointerException: Kann die Methode myMethod () auf Null-Objekt

nicht aufrufen

Im Folgenden sehen Sie, wie es mit setup (),

aussieht %Vor%

Kann jemand helfen?

Hier ist die Lösung für das Problem:

%Vor%     
Masa 31.01.2012, 18:18
quelle

1 Antwort

20

In Spock Objekte, die in Instanzfeldern gespeichert sind, werden nicht zwischen Feature-Methoden geteilt. Stattdessen erhält jede Feature-Methode ein eigenes Objekt.

Wenn Sie ein Objekt zwischen Feature-Methoden teilen müssen, deklarieren Sie ein @Shared -Feld .

%Vor% %Vor%

Es gibt 2 Fixture-Methoden zum Einrichten der Umgebung:

%Vor%

Ich verstehe nicht, warum das zweite Beispiel mit setupSpec() funktioniert und schlägt mit setup() fehl, weil es in der Dokumentation enthalten ist sagt etwas anderes:

  

Hinweis: Die Methoden setupSpec () und cleanupSpec () verweisen möglicherweise nicht   Instanzfelder.

    
Arturo Herrero 31.01.2012 20:56
quelle

Tags und Links