Mockito 可以处理 Scala 中返回泛型的方法吗?

发布于 2024-11-09 23:28:00 字数 960 浏览 0 评论 0原文

我想模拟 javax. servlet.http.HttpServletRequest,getParameterNames()。因此:

import org.specs.Specification
import org.specs.mock.Mockito
import scala.collection.JavaConversions._
import javax.servlet.http.HttpServletRequest

object SomethingSpec extends Specification with Mockito {
    "Something" should {
        "do something" in {
            val request = mock[HttpServletRequest]

            // This is fine
            val elements: java.util.Enumeration[String] = List("p1", "p2").iterator

            // But this bombs
            request.getParameterNames() return elements
        }
    }
}

最后一行的编译会导致这个难以理解的错误:

found   : java.util.Enumeration[String]
required: java.util.Enumeration[?0] where type ?0

我做错了什么吗?

I want to mock the return from javax.servlet.http.HttpServletRequest, getParameterNames(). Therefore:

import org.specs.Specification
import org.specs.mock.Mockito
import scala.collection.JavaConversions._
import javax.servlet.http.HttpServletRequest

object SomethingSpec extends Specification with Mockito {
    "Something" should {
        "do something" in {
            val request = mock[HttpServletRequest]

            // This is fine
            val elements: java.util.Enumeration[String] = List("p1", "p2").iterator

            // But this bombs
            request.getParameterNames() return elements
        }
    }
}

Compilation of the last line results in this difficult-to-understand error:

found   : java.util.Enumeration[String]
required: java.util.Enumeration[?0] where type ?0

Am I doing something wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小瓶盖 2024-11-16 23:28:00

您是否尝试过从 HttpServletRequest 中转换返回值

request.getParameterNames().asInstanceOf[java.util.Enumeration[String]] returns elements

,就像 getParameterNames 返回一个无类型枚举一样。

have you tried to cast the return value from the HttpServletRequest like

request.getParameterNames().asInstanceOf[java.util.Enumeration[String]] returns elements

It seems, getParameterNames returns an untyped Enumeration.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文