Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 如何使用Play Framework';通过play';什么是WS对象?_Web Services_Scala_Testing_Playframework 2.1_Functional Testing - Fatal编程技术网

Web services 如何使用Play Framework';通过play';什么是WS对象?

Web services 如何使用Play Framework';通过play';什么是WS对象?,web-services,scala,testing,playframework-2.1,functional-testing,Web Services,Scala,Testing,Playframework 2.1,Functional Testing,我正在编写一些功能测试,但是我想测试与其他http端点隔离的堆栈 有没有一种机制可以让我说“将WS调用直接发送到这组固定响应”或者其他一些方式来中断对http端点的调用,而这些调用将不可用于自动测试 或者,fakeApplication config如何呈现给应用程序的其余部分,以便我可以将URL设置为某个本地主机服务器,我将自己构建该服务器以提供固定的响应您可以创建一个模仿WS签名的结构类型,并在代码中使用它 type WSLike = { def url(url: String): WS

我正在编写一些功能测试,但是我想测试与其他http端点隔离的堆栈

有没有一种机制可以让我说“将WS调用直接发送到这组固定响应”或者其他一些方式来中断对http端点的调用,而这些调用将不可用于自动测试


或者,fakeApplication config如何呈现给应用程序的其余部分,以便我可以将URL设置为某个本地主机服务器,我将自己构建该服务器以提供固定的响应

您可以创建一个模仿
WS
签名的结构类型,并在代码中使用它

type WSLike = {
  def url(url: String): WSRequestHolder
}
然后可以注入自己版本的
WSLike
类。结合模拟图书馆,我想你可以做任何你想做的事

至于第二个问题。你可以这样称呼它:

val url = Play.current.configuration
  .getString("my.webservice.url")
  .getOrElse(throw new PlayException(
    "Configuration error",
    "Could not find my.webservice.url in settings"))

WS.url(url)
然后在
application.conf
中添加正确的url。您可以使用
FakeApplication
提供另一个

FakeApplication(additionalConfiguration = 
  Map("my.webservice.url" -> "http://localhost/service"))