我正在抓取一个期望GET参数和cookie的网站。我想知道是否正在发送正确的参数和cookie。能够测试HTTP标头,POST数据等将在以后非常有用。
在我看来,最好的方法是启动一个网络服务器,让抓取代码调用一个指向网络服务器的URL,看看是否所有内容都在服务器上正确到达。有一种简单的方法来设置模拟外部Web服务器也非常适合集成测试。
这是一个简单的代码:
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是否提供了轻松测试这类内容的功能?是否有其他易于使用的库可以满足我的需求?
答案 0 :(得分:2)
在单元测试中尝试嵌入式jetty,您可以按照自己想要的方式伪造外部服务
答案 1 :(得分:0)
测试Play 2应用程序的默认方法是使用specs2。在您的情况下,可以使用functional tests来测试网络服务器,如:
"run in a server" in new WithServer {
await(getResource(a,b,c)).status must equalTo(OK)
}
有关测试Play 2应用的信息,请参阅documentation。