BRD*_*oid 5 android kotlin retrofit okhttp retrofit2
我正在编写一个单元测试,我想抛出一个错误代码为 409 的 HttpException。
这是我尝试过的,但它给了我一个错误
Using 'parse(String): MediaType?' is an error. moved to extension function
这是一个kotlin文件和Retrofit 2.6.0,并且ResponseBody是okhttp3 - 3.12.12
我尝试过的
every(call.execute()).thenThrow(HttpException(
Response.error<Any>(409, ResponseBody.create(
MediaType.parse("plain/text"), ""
))
))
Run Code Online (Sandbox Code Playgroud)
请问我该如何解决这个问题
谢谢R
对于 Kotlin:
目前ResponseBody.create不推荐使用方法(至少在 OkHttp3 版本中4.9.1)。可以使用以下扩展方法:
"raw response body as string".toResponseBody("plain/text".toMediaTypeOrNull())
Run Code Online (Sandbox Code Playgroud)
我以前也遇到过这种情况。在某些时候,OkHttp3 的某些依赖项发生了变化,并且生成的错误消息并不是非常有帮助。我相信您正在寻找的是新的.toMediaType()Kotlin 扩展函数。所以而不是:
ResponseBody.create(MediaType.parse("plain/text"), "")
Run Code Online (Sandbox Code Playgroud)
请尝试:
ResponseBody.create("plain/text".toMediaType(), "")
Run Code Online (Sandbox Code Playgroud)
您可能需要导入此扩展。如果您的 IDE 没有自动建议,请尝试通过 导入import okhttp3.MediaType.Companion.toMediaType。