2

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

是否有一种机制可以让我说“直接 WS 调用这组预设响应”或其他一些方法来消除对无法用于自动化测试的 http 端点的调用?

或者,fakeApplication 配置如何呈现给应用程序的其余部分,因此我可以将 URL 设置为一些本地服务器,我将自己构建以提供预设响应

4

1 回答 1

1

您可以创建一个模仿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添加正确的网址。您可以使用FakeApplication.

FakeApplication(additionalConfiguration = 
  Map("my.webservice.url" -> "http://localhost/service"))
于 2013-08-01T20:23:15.447 回答