2016-03-25 25 views
0

私はSpockフレームワークを初めて使いました。抽象的なJavaテストクラスを使用して問題が発生しました。Javaテストクラスを使用したGroovy Spock

私が持っておきたいのは、いくつかの一般的なメソッドを持つ他のJava抽象クラスを拡張したGroovyテストクラスです。次のように

ので、コードは次のとおりです。私は、グルーヴィーな抽象クラスを使用している場合は

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

:私は、私は次のエラーを取得していますGroovyTestクラスを走った

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

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

エラーなしで動作します。

私の質問は、SpockフレームワークでJavaクラスを使用する方法ですか?

+0

なぜそれをしますか?あなたはこの種のBabelのタワーを構築することによって私が考えることができない利点は得られないので、あなたが解決しようとしている問題を理解することに興味があります –

+0

私は、一般的な方法を持つ抽象的なJavaクラスを持っています。異なるJavaテスト。今私はGroovyで書かれた新しいテストを追加しようとしていますが、このクラスの機能も必要です。それは私がそれがグルーヴィークラスに変更したくない理由です。 – androberz

+0

この抽象Javaクラスをどのように再利用したいですか? Spock仕様からJavaテストを拡張したいですか? – Cortwave

答えて

2

Spockは、DSL Groovyベースのテスト言語です。テスト実行前に正規のGroovyコードへの変換(AST)を実行します。あなたの場合、JavaベースのSpockテストを作成しようとします。 Spockは正規のJavaコードからAST変換を実行できず、IvalidSpecExceptionをスローします。

関連する問題