#generics #scala #mockito
#обобщения #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:
вы пытались привести возвращаемое значение из HttpServletRequest, например
request.getParameterNames().asInstanceOf[java.util.Enumeration[String]] returns elements
Похоже, getParameterNames возвращает нетипизированное перечисление.
Комментарии:
1. Похоже на ошибку Mockito, поскольку getParameterNames определенно возвращает перечисление [String] . Но это помогает мне обойти проблему. Спасибо!