2016-03-25 10 views
0

Ich bin neu im Spock-Framework, und ich habe ein Problem mit einer abstrakten Java-Test-Klasse mit ihm.Groovy Spock mit einer Java-Testklasse

Was ich gerne haben würde, ist eine groovy Test-Klasse, die einige andere Java-abstrakte Klasse mit einigen gängigen Methoden erweitert, die wiederum Spezifikation Klasse erweitert.

So ist der Code wie folgt:

class GroovyTest extends AbstractTest { 
    def "my test"() { 
     .... 
    } 
} 

public abstract class AbstractTest extends Specification { 
    ... 
    some common methods 
    ... 
} 

Als ich die GroovyTest Klasse lief ich die folgende Fehlermeldung erhalten:

org.spockframework.runtime.InvalidSpecException: Specification 'org.my.package.AbstractTest' was not compiled properly (Spock AST transform was not run); try to do a clean build

Wenn ich eine groovy abstrakte Klasse verwenden, dann Es funktioniert ohne Fehler.

Also meine Frage gibt es eine Möglichkeit, Java-Klasse mit Spock-Framework zu verwenden?

+0

Warum würden Sie das tun? Sie würden keinen Vorteil bekommen, den ich durch den Bau dieser Art von Turm von Babel denken kann, also bin ich daran interessiert, das Problem zu verstehen, das Sie zu lösen versuchen –

+0

Ich habe nur eine abstrakte Java-Klasse mit gängigen Methoden, die unter verwendet werden verschiedene Java-Tests. Jetzt versuche ich, neue Tests hinzuzufügen, die in Groovy geschrieben wurden, aber ich brauche auch Funktionalität aus dieser Klasse. Das ist der Grund, warum ich nicht möchte, dass es zu einer groovigen Klasse wird. – androberz

+0

Wie möchten Sie diese abstrakte Java-Klasse wiederverwenden? Möchten Sie den Java-Test von der Spock-Spezifikation erweitern? – Cortwave

Antwort

2

Spock ist eine auf DSL Groovy basierende Testsprache. Es führt vor der Testausführung Transformationen (AST) in den kanonischen Groovy-Code aus. In Ihrem Fall versuchen Sie Java-basierten Spock-Test zu schreiben. Spock kann keine AST-Transformationen aus dem kanonischen Java-Code ausführen und löst IvalidSpecException aus.

Verwandte Themen