okhttp - MockWebServer:java.lang.NoSuchMethodError

标签 okhttp spock okhttp3 mockwebserver

第一次在使用 Spock 进行单元测试的 Groovy/Spring 项目上尝试 MockWebServer。

我按照指示添加了 MockWebServer 依赖项(我必须自己添加第二行以避免错误,但没有记录在案:

testImplementation("com.squareup.okhttp3:mockwebserver:4.0.0")
testImplementation("org.jetbrains.kotlin:kotlin-stdlib:1.3.40")

我有一个基本的 Spock 测试,如下所示:
def 'server'() {
    setup:
    MockWebServer server = new MockWebServer()

    expect:
    server
}

但它失败了这个输出:
java.lang.NoSuchMethodError: okhttp3.internal.Util.immutableListOf([Ljava/lang/Object;)Ljava/util/List;

    at okhttp3.mockwebserver.MockWebServer.<init>(MockWebServer.kt:176)

我还缺少另一个依赖项吗? MockWebServer 不能很好地与 Groovy 和 Spock 配合使用吗?

就其值(value)而言,使用 3.1.4 版似乎有效:
testImplementation("com.squareup.okhttp3:mockwebserver:3.14.2")

(我是 MockWebServer 的第一次用户)

谢谢!

最佳答案

尝试添加这个:

testImplementation("com.squareup.okhttp3:mockwebserver:4.0.0")
testImplementation("com.squareup.okhttp3:okhttp:4.0.0")

使用 MockWebServer,您的 OkHttp 依赖项必须是相同的版本。

关于okhttp - MockWebServer:java.lang.NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56854548/

相关文章:

android - 如何使用内容类型为 x-www-form-urlencoded 的 okhttp 库发布数据?

android - 如何在 Android 中禁用 ssl 关键扩展检查?

android - 致命异常 : java. io.InterruptedIOException:使用 rxjava 进行改造时线程中断

android - 将 OkHttp 与现有的 HttpUrlConnection 代码一起使用?

grails - 如何使用 Spock 使用 @Autowired 测试类

unit-testing - 如何在 Grails 中测试 spring bean?

testing - 使 Grails Geb 测试具有事务性

android - 如何在 okhttp 库的 header 中发送特殊字符,如 å

Android 在 OKHttp 中启用 TLSv1.2