繁体   English   中英

如何使用Play Framework的FakeApplication通过Play的WS对象将对Web服务的调用存根?

[英]How can I use Play Framework's FakeApplication to stub out calls to web services via play's WS object?

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

我是否可以使用一种机制说“直接WS调用这组罐装响应”或以其他方式中断对自动测试不可用的http端点的调用?

另外,fakeApplication配置如何呈现给应用程序的其余部分,因此我可以将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"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM