从 Groovy-Spock 代码中的 Where 块传递参数时出错
Getting error when passing parameters from Where block in Groovy-Spock code
我已经为我的应用程序编写了代码。
def "Test for file type #FileFormat"() {
given:
HttpURLConnection connection = getHandlerURL('endpoint')
connection.setDoOutput(true)
connection.setRequestMethod("POST")
connection.setRequestProperty(HttpHeaders.CONTENT_TYPE, "RdfFormat."+RDFFileFormat+".toMIME()")
rdfStatement = ModelFactory.createDefaultModel().read(new ByteArrayInputStream(readRDFfromfile(Filename).bytes), null, "RdfFormat."+RDFFileFormat.toString()).listStatements().nextStatement()
when:
connection.getOutputStream().write(readRDFfromfile(Filename).bytes)
then:
connection.getResponseCode() == HTTP_CREATED
where:
FileFormat | Filename | RDFFileFormat
'N-TRIPLES' | 'n-triples.nt' | "NTRIPLES"
}
当我 运行 我的代码出现错误:SampleTest.Test for file type #FileFormat:37 » Riot
在 Given 子句的最后一行。
如果我使用 RdfFormat.NTRIPLES.toString()
而不是使用从 Where 子句传递的参数 RDFFileFormat,则测试通过。
尝试分配 def format1 = "RdfFormat."+RDFFileFormat+".toString()"
并使用 format1,但出现同样的错误。
有什么方法可以让它发挥作用吗?
我想你可能想要:
connection.setRequestProperty(HttpHeaders.CONTENT_TYPE, RdfFormat."$RDFFileFormat".toMIME())
我已经为我的应用程序编写了代码。
def "Test for file type #FileFormat"() {
given:
HttpURLConnection connection = getHandlerURL('endpoint')
connection.setDoOutput(true)
connection.setRequestMethod("POST")
connection.setRequestProperty(HttpHeaders.CONTENT_TYPE, "RdfFormat."+RDFFileFormat+".toMIME()")
rdfStatement = ModelFactory.createDefaultModel().read(new ByteArrayInputStream(readRDFfromfile(Filename).bytes), null, "RdfFormat."+RDFFileFormat.toString()).listStatements().nextStatement()
when:
connection.getOutputStream().write(readRDFfromfile(Filename).bytes)
then:
connection.getResponseCode() == HTTP_CREATED
where:
FileFormat | Filename | RDFFileFormat
'N-TRIPLES' | 'n-triples.nt' | "NTRIPLES"
}
当我 运行 我的代码出现错误:SampleTest.Test for file type #FileFormat:37 » Riot
在 Given 子句的最后一行。
如果我使用 RdfFormat.NTRIPLES.toString()
而不是使用从 Where 子句传递的参数 RDFFileFormat,则测试通过。
尝试分配 def format1 = "RdfFormat."+RDFFileFormat+".toString()"
并使用 format1,但出现同样的错误。
有什么方法可以让它发挥作用吗?
我想你可能想要:
connection.setRequestProperty(HttpHeaders.CONTENT_TYPE, RdfFormat."$RDFFileFormat".toMIME())