我有幾個單元測試,使用正方形OkHttp
s MockWebServer
。測試運行良好,一切正常。至今我無法做的一件事是驗證POST請求的內容。如何使用MockWebServer驗證POST Body的內容?
爲什麼我要這樣做?
我正在開發的REST API有一些方法,需要在POST請求主體中發送數據對象,其他方法要求將對象作爲FormUrlEncoded
數據字段發送。所以我想確保Retrofit
接口的設置是正確的。到規範。
下面的單元測試會通過,但第一個錯誤發送身體內的數據:
//Incorrect
@POST("api/v1/user/senddata")
Observable<Void> senddata (
@Path("VIN") String vin,
@Body PoiWrapper wrappedPoi);
//Correct
@FormUrlEncoded
@POST("api/v1/user/senddata")
Observable<Void> senddata(
@Path("VIN") String vin,
@Field("data") PoiWrapper wrappedPoi);
我知道MockWebServer
有takeRequest()
的方法,但我堅持用得到實際的領域,來自該請求主體的數據。
謝謝你的幫助!
好吧,這不是100%的解決我的問題,但它把我推到正確的方向。 'readUtf8()'用HTML編碼的表單域返回正文。我仍然需要解碼字符串,將它反序列化爲一個Map,然後檢查鍵和值。 – ASP