0

次のコードを使用して、スローされた例外をテストしようとすると、次のようになります。

@TestFor(EncryptionService)
class EncryptionServiceSpec extends Specification {
def "test decryption of unecnrypted file"(){
    setup: 
        def clearTextFile = new File("test/resources/clearText.txt")
        clearTextFile.write("THIS IS CLEAR TEXT")

    when:
        def (privateKey,publicCert) = service.generateKeyPair("123")
        service.decryptFile(new FileInputStream(clearTextFile), privateKey )

    then:
        clearTextFile.delete()
        thrown GeneralSecurityException
}
}

いずれかのgrailstest-app-unitを実行すると、次のコンパイル例外が発生します

仕様'com.genospace.services.EncryptionServiceSpec'のコンパイル中に予期しないエラーが発生しました。無効なSpock構文を使用した可能性がありますか?とにかく、http://issues.spockframework.orgでバグレポートを提出してください。

java.lang.ClassCastException:org.codehaus.groovy.ast.expr.ArgumentListExpressionをorg.codehaus.groovy.ast.expr.DeclarationExpression.getVariableExpression(DeclarationExpression.java)のorg.codehaus.groovy.ast.expr.VariableExpressionにキャストできません。 :103)org.spockframework.compiler.SpecRewriter.moveVariableDeclarations(SpecRewriter.java:538)で

4

1 に答える 1

1

Groovyの複数割り当て機能(def (privateKey,publicCert) = ...)を利用せずに試してください。これで問題が解決した場合(そして問題が解決すると思います)、http://issues.spockframework.orgで問題を報告してください。

于 2013-02-07T05:06:34.410 に答える