【问题标题】:Can Mockito handle methods that return generics in Scala?Mockito 可以处理在 Scala 中返回泛型的方法吗?
【发布时间】:2011-05-26 21:14:49
【问题描述】:

我想模拟来自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

我是不是做错了什么?

【问题讨论】:

    标签: generics scala mockito


    【解决方案1】:

    您是否尝试过像这样从 HttpServletRequest 转换返回值

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

    看来,getParameterNames 返回一个无类型的枚举。

    【讨论】:

    • 看起来像一个 Mockito 错误,因为 getParameterNames 肯定会返回一个 Enumeration[String]。但这有助于我解决这个问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-01-08
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    相关资源
    最近更新 更多