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

时间:2011-05-26 21:14:50

标签: generics scala mockito

我想模仿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

我做错了吗?

1 个答案:

答案 0 :(得分:1)

您是否尝试从HttpServletRequest转换返回值,如

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

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