android - 如何在 Kotlin 中抛出 HttpException - 改造 2 - 单元测试

标签 android kotlin retrofit retrofit2 okhttp

我正在编写一个单元测试,我想抛出一个错误代码为 409 的 HttpException。

这是我尝试过的,但它给了我一个错误

使用 'parse(String): MediaType?'是一个错误。移至扩展功能

这是一个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"), ""
            ))
        ))

请问我该如何解决

谢谢 回复

最佳答案

对于 Kotlin: 目前 ResponseBody.create 方法已被弃用(至少在 OkHttp3 版本 4.9.1 中)。可以使用以下扩展方法:

"raw response body as string".toResponseBody("plain/text".toMediaTypeOrNull())

关于android - 如何在 Kotlin 中抛出 HttpException - 改造 2 - 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65985147/

相关文章:

java - 如何设置主 Activity 中显示的默认 fragment ?

spring - 获取请求 header 名称和值

android - 改造链接可观察对象

android - 如何检查该词是否已在用户词典中可用?

android - Gathering 崩溃注销 Samsung Galaxy 设备

java - 如何检查 Json 对象中是否存在键并获取其值

android - 具有 ArrayList 数据类型的 Hashmap(Kotlin)?

android - Kotlin Iterable.map 的类似物,但用于单个对象

Android Studio Recyclerview 使用 Retrofit

java - 如何从 Retrofit 异步返回任何对象(无法调用 enqueue() 方法)