2016-09-15 2 views
-1

Ich benutze Geb, Spock mit groovy, verwende ich Feature für mehrere Blöcke in der Funktion. Aber ein Block ist fehlgeschlagen als sofort aus der Schleife zu verlassen. zum Beispiel: -Mit mehreren wenn und dann im Code blockieren, wie man Fehler

def "test"(){ 
    given: 
     println(" checking 3 nos") 

    when: 
     def a = 5 
     def b = 10 
     def c = 20 
      if (a < b) 
      println("Hi, I'm Pass") 
    then: 
     true 

    when: 
     def a1 = 5 
     def a2 = 10 
     def a3 = 20 
      if (a2 > a3) 
      println("Fail") 
    then: 
    false 

    when: 
     def a11 = 5 
     def a22 = 10 
     def a33 = 20 
      if (a33 > a11) 
      println("Hello, i'm pass") 
    then: 
    true 

Aber hier reruns es nur Hallo, ich bin Pass aber nicht dritten Block ausgeführt wird, nicht zurück zweite Block Antwort. Bitte führen Sie mich.

+1

Können Sie erklären, bewegen besser? Was soll 'then: true' und' then: false' dann tun? –

+1

Sekunde dann Block führt false aus und der Test schlägt fehl, was das erwartete Verhalten ist. Was ist dein erwartetes Ergebnis? – Mamun

+0

Tim_yates, gegeben, wann und dann ist Syntax. Gegeben ist das Merkmal, wann ist der Fluss und dann ist der Rückgabetyp. wenn der zweite Block ausfällt, wird der dritte Block nicht fortgesetzt. so wie man dritten Block zu machen, durch zweite ist fehlgeschlagen. –

Antwort

0

Wenn Sie fragen, wie können Sie jedes weiter ausführen, wenn/nachdem ein vorheriges fehlschlägt, dann ist die Antwort, dass Sie nicht können. Eine einzelne Testmethode stoppt beim ersten Fehler. Wenn Sie individuelle Tests wünschen, machen Sie mehrere Methoden.

def 'test1'() { 
    when: 
    ... 

    then: 
    ... 
} 

def 'test2'() { 
    when: 
    ... 

    then: 
    ... 
} 
0

Es ist unmöglich. Teilen Sie Ihren Code in mehrere Tests auf, indem Sie ihn in jedem der Blöcke blockieren.

Sie können auch einige Setup-Code zu setupSpec() und setup()

Verwandte Themen