【发布时间】:2012-01-27 20:16:25
【问题描述】:
我有一些处理 HTTP 请求的代码,我想对它进行单元测试。
因此,我试图用 Scala (2.9.1.final)、Mockito (1.9.0) 模拟 dispatch.Http 甚至更好的 dispatch.HttpExecutor (0.8.5) -rc1) 和 ScalaTest (1.6.1) 但甚至无法使我的测试代码可编译。
在 MyHttpTest 中,我想接收任何 HTTP 请求的特定 HTTP 响应:
import org.scalatest.FunSuite
import org.scalatest.mock.MockitoSugar
import org.mockito.Mockito.when
import org.mockito.Matchers.any
import dispatch._
class MyHttpTest extends FunSuite with MockitoSugar {
test("example") {
val httpMock = mock[HttpExecutor]
when(httpMock.apply(any(classOf[Handler[String]]))).thenReturn("Some_HTTP_response")
}
}
但它会产生编译错误:
error: overloaded method value thenReturn with alternatives:
(httpMock.HttpPackage[String],<repeated...>[httpMock.HttpPackage[String]])org.mockito.stubbing.OngoingStubbing[httpMock.HttpPackage[String]] <and>
(httpMock.HttpPackage[String])org.mockito.stubbing.OngoingStubbing[httpMock.HttpPackage[String]]
cannot be applied to (java.lang.String)
when(httpMock.apply(any(classOf[Handler[String]]))).thenReturn("Some_response")
那么如何模拟调度客户端呢?
【问题讨论】:
-
以防万一它对某人有用 - 这是最终使用煮熟的(由 Paul Butcher)模拟的代码:
println(httpMock(url("http://google.com") as_str))
标签: scala unit-testing mocking mockito scala-dispatch