0
我已經潛入Groovy中,用於功能測試WebAPI。我發現List.execute()非常令人沮喪地在Windows和Linux上工作。我無法獲得相同的JSON字符串來同時工作。傳遞JSON在Groovy中捲曲看起來依賴於平臺
下面是我不得不求助於什麼:
private createLeaderboard(String name) {
def url = 'http://localhost:8888/v1/tournaments'
// Here's the JSON
def body = '{"name":"' + name + '"}'
if (System.properties['os.name'].toLowerCase().contains('windows')) {
// I have to surround with single quotes to get working on Windows
body = "'" + body + "'"
}
def content = "content-type:application/json"
def command = ['curl', '-s', '--request', 'POST', '--data', body, '--header', content, url]
println "command:" + command
def proc = command.execute()
proc.waitFor()
def jsonstr = proc.in.text
assertEquals(0, proc.exitValue())
def obj = JSON.parseText(jsonstr)
return obj
}
如果我不環繞JSON身體與窗戶單引號,應用程序看到
name:thename
與兩個大括號並刪除雙引號。但是如果我用單引號括起來,Linux會看到
'{"name":"thename"}'
這也打破了應用程序中的JSON解析器。
我應該添加我使用grang與appengine插件並在appengineFunctionalTest任務中運行,如果它有任何方位。
非常優雅和完美的作品。謝謝。 –