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
}
}

运行 grails test-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 转换为 org.codehaus.groovy.ast.expr.VariableExpression(DeclarationExpression.java :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 回答