我有一些关于HTTP请求的代码,需要进行单元测试。
因此,我正在尝试使用Scala(2.9.1.final)、Mockito(1.9.0-rc1)和ScalaTest(1.6.1)来模拟dispatch.Http甚至更好的dispatch.HttpExecutor(0.8.5),但是我甚至无法使我的测试代码编译通过。
在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")
那么如何模拟调度客户端?
println(httpMock(url("http://google.com") as_str))
。 - aka_sh