In meinem Test habe ich einige Feature-Methoden, die nur in bestimmten Situationen ausgeführt werden müssen. Mein Code sieht in etwa wie folgt aus:Wie machen Sie eine Feature-Methode konditional?
class MyTest extends GebReportingSpec{
def "Feature method 1"(){
when:
blah()
then:
doSomeStuff()
}
def "Feature method 2"(){
if(someCondition){
when:
blah()
then:
doSomeMoreStuff()
}
}
def "Feature method 3"(){
when:
blah()
then:
doTheFinalStuff()
}
}
Ich sollte anmerken, ich eine benutzerdefinierte spock Erweiterung verwende, die mir alle Feature Methoden einer spec laufen zu lassen, auch wenn eine vorherige Funktion Methode fehlschlägt.
Die Sache, die ich gerade realisiert habe und der Grund, warum ich diesen Beitrag mache, ist, weil "Feature method 2" aus irgendeinem Grund nicht in meinen Testergebnissen auftaucht, aber Methode 1 und 3 tun. Auch wenn someCondition
auf True festgelegt ist, wird es in den Erstellungsergebnissen nicht angezeigt. so frage ich mich, warum dies so ist, und wie kann ich diese Funktion Methode abhängig machen
"Ich sollte beachten, dass ich eine benutzerdefinierte Spock-Erweiterung verwende, die es mir ermöglicht, alle Feature-Methoden einer Spezifikation auszuführen, selbst wenn eine vorherige Feature-Methode fehlschlägt." das ist das normale Verhalten. Verwenden Sie '@ Stepwise' ohne wirklich sein Verhalten zu wollen? –