0

我正在抓取一个需要 GET 参数和 cookie 的网站。我想知道是否正在发送正确的参数和 cookie。能够测试 HTTP 标头、POST 数据等在以后也会非常有用。

在我看来,最好的方法是启动一个网络服务器,让抓取代码调用一个指向网络服务器的 URL,并查看所有内容是否正确到达服务器。有一个简单的方法来设置一个模拟外部网络服务器也将非常适合集成测试。

它是这样的简单代码:

  def getResource(a: String, b: String, c: String) =
    WS.url("http://www.example.com")
          .withQueryString("x" -> a, "y" -> b)
          .withHeaders("Cookie" -> c)
          .get()

我正在使用 ScalaTest 进行单元测试。

Play 是否提供任何东西来轻松测试这些东西?是否有其他易于使用的库可以满足我的需求?

4

2 回答 2

2

尝试在单元测试中嵌入码头,您可以按照您想要的方式伪造外部服务

于 2013-06-16T20:52:43.453 回答
0

测试 Play 2 应用程序的默认方法是使用specs2。在您的情况下,可以使用功能测试来测试网络服务器,例如:

"run in a server" in new WithServer {
  await(getResource(a,b,c)).status must equalTo(OK)
}

请参阅有关测试 Play 2 应用程序的文档。

于 2013-06-17T12:40:26.387 回答