我有一些处理 HTTP 请求的代码,我想对它进行单元测试。
因此,我试图用 Scala (2.9.1.final)、Mockito (1.9.0-rc1) 和 ScalaTest (1.6.1) 模拟dispatch.Http甚至更好的dispatch.HttpExecutor (0.8.5),但甚至可以' t 使我的测试代码可编译。
在 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")
那么如何模拟调度客户端呢?