requestのbodyにJSONを入れてPOSTする必要のあるAPIが最近よくありますが、そのAPIのE2Eテストをcasperjsでする時に意外とやり方が見つからなかったので短いですがメモ。
coffee scriptなのでJSな人は適当に読み替えてください。
casper.thenOpen "http://localhost:8080/xxxx",
method: "post"
data: JSON.stringify({
title:"title1"
content: "foobar"
})
headers:
"Content-Type": "application/json; charset=utf-8"
, ->
@echo "POST request has been sent."
test.assertHttpStatus 201
サーバー側の仕様にもよると思いますが、Content-Typeヘッダーを付けるのと、単にJSON.stringifyしてあげるという話でした。いまいちググってもやり方が見つからず、試行錯誤した結果こうでした。