【发布时间】:2016-11-25 23:01:18
【问题描述】:
我有几个使用 Squares OkHttps MockWebServer 的单元测试。测试运行良好,一切运行良好。到目前为止,我无法做的一件事是验证 POST 请求的内容。
我为什么要这样做?
我正在开发的 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() 方法,但我一直无法从该请求正文中获取实际字段和数据。
感谢您的帮助!
【问题讨论】:
标签: junit junit4 okhttp retrofit2 mockwebserver