Gradle 与Kotlin一起使用的Mockito不起作用,因为它仍在调用原始方法

Gradle 与Kotlin一起使用的Mockito不起作用,因为它仍在调用原始方法,gradle,kotlin,intellij-idea,mockito,Gradle,Kotlin,Intellij Idea,Mockito,当我将Mockito与Kotlin一起使用时,似乎模拟不起作用。我仔细检查了Mockito API的使用是否正确,并进行了调试,发现被模拟的对象具有Mockito拦截器/代理,而不仅仅是一个普通实例 这是我的最起码的例子: import java.nio.file.Path class MyApp( private val downloader: Downloader ) { fun useDownloader(): String { val fileName

当我将Mockito与Kotlin一起使用时,似乎模拟不起作用。我仔细检查了Mockito API的使用是否正确,并进行了调试,发现被模拟的对象具有Mockito拦截器/代理,而不仅仅是一个普通实例

这是我的最起码的例子:

import java.nio.file.Path

class MyApp(
    private val downloader: Downloader
) {
    fun useDownloader(): String {
        val fileName = downloader.getFileName("fromUrl")
        downloader.download("http://notworking", Path.of("notworking:$fileName"))
        return fileName;
    }
}
我收到的错误如下:

java.lang.IllegalArgumentException: URI is not absolute

    at java.base/java.net.URL.fromURI(URL.java:681)
    at java.base/java.net.URI.toURL(URI.java:1116)
    at org.springframework.http.client.SimpleClientHttpRequestFactory.createRequest(SimpleClientHttpRequestFactory.java:145)
    at org.springframework.http.client.support.HttpAccessor.createRequest(HttpAccessor.java:124)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:738)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:677)
    at org.springframework.web.client.RestTemplate.headForHeaders(RestTemplate.java:369)
    at fcse.mycompany.importer.app.Downloader.getFileName(Downloader.kt:19)
错误告诉我,
Downloader
对象没有被模拟,而是与它的原始方法一起使用-没有发生拦截

其他信息:

  • 使用IntelliJ IDEA
  • 使用渐变
  • 由IDE测试运行程序运行(不是gradle测试运行程序)
    • 而不是

      Mockito.`when`(mockedDownloader.getFileName(“fromUrl”))`
      
      使用

      Mockito.`when`(mockedDownloader.getFileName(ArgumentMatchers.eq(“fromUrl”))
      

      Mockito.`when`(mockedDownloader.getFileName(anyString()))
      
      除了以下事实之外,这几乎起到了作用:
      java.lang.IllegalStateException:ArgumentMatchers.eq(“fromUrl”)不能为null
      。非常令人困惑的错误消息
      java.lang.IllegalArgumentException: URI is not absolute
      
          at java.base/java.net.URL.fromURI(URL.java:681)
          at java.base/java.net.URI.toURL(URI.java:1116)
          at org.springframework.http.client.SimpleClientHttpRequestFactory.createRequest(SimpleClientHttpRequestFactory.java:145)
          at org.springframework.http.client.support.HttpAccessor.createRequest(HttpAccessor.java:124)
          at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:738)
          at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:677)
          at org.springframework.web.client.RestTemplate.headForHeaders(RestTemplate.java:369)
          at fcse.mycompany.importer.app.Downloader.getFileName(Downloader.kt:19)