首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala Spec2 Mockito:具有复杂类型的参数匹配器

Scala Spec2 Mockito:具有复杂类型的参数匹配器
EN

Stack Overflow用户
提问于 2013-10-03 19:15:58
回答 2查看 2.6K关注 0票数 2

我正在尝试用Mockito为web服务编写一个模拟。mock应该使用play WS库模拟POST请求。

代码语言:javascript
复制
/**
 * Mock for the  Web Service
 */
case class WSMock() extends Mockito {
  val wsRequestHolder: play.api.libs.ws.WS.WSRequestHolder = mock[play.api.libs.ws.WS.WSRequestHolder]

  val wsResponse: play.api.libs.ws.Response = mock[play.api.libs.ws.Response]
  wsResponse.status returns 200
  wsResponse.body returns "BODY RESP FROM WS"

  val futureResponse = scala.concurrent.Future { wsResponse }

  wsRequestHolder.post(any[Map[String,Seq[String]]]) returns futureResponse
}

在运行测试时,我得到以下错误:

代码语言:javascript
复制
[error]     InvalidUseOfMatchersException: 
[error] Invalid use of argument matchers!
[error] 3 matchers expected, 1 recorded:
[error] -> at org.specs2.mock.mockito.MockitoMatchers$class.any(MockitoMatchers.scala:24)
[error] 
[error] This exception may occur if matchers are combined with raw values:
[error]     //incorrect:
[error]     someMethod(anyObject(), "raw String");
[error] When using matchers, all arguments have to be provided by matchers.
[error] For example:
[error]     //correct:
[error]     someMethod(anyObject(), eq("String by matcher"));
[error] 
[error] For more info see javadoc for Matchers class.

在我看来,它就像是...使用复杂类型(带有嵌套类型参数)的表达式无法正确解析为匹配器。然而,我看不出原始类型在哪里起作用。为参数Map[String,Seq[String]]指定这样的匹配器的正确方法是什么

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2013-10-08 02:31:44

代码语言:javascript
复制
wsRequestHolder.post(any[Map[String,Seq[String]]]) returns futureResponse

注意,post实际上有两个额外的隐式参数:

代码语言:javascript
复制
def post [T] (body: T)(implicit wrt: Writeable[T], ct: ContentTypeOf[T]):
    Promise[Response]

this spec2-users thread中,...which可能需要显式匹配。

票数 2
EN

Stack Overflow用户

发布于 2014-12-05 19:23:59

似乎wsRequestHolder.post方法需要三个参数,所以Mockito希望你发送三个匹配器(例如any[]),但你只为其中一个提供了匹配器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19157783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档