2017-05-07 124 views
1

的测试响应我有一个页面,该页面返回StreamResponse(JSON):挂毯5:

StreamResponse onActivate() { .... } 

服务器支持POST/GET/PUT /删除与该页面的参数要求。

我想为这个请求写一个测试(junit)并声明结果。

我怎么能做到这一点?

+0

你想要测试什么? tapestry应用程序如何处理不同的HTTP动词?或者只是实现'onActivate()'? –

+0

是的,我想确保我的服务器能够正常工作,并根据某些请求更正了答案。那么,我现在做了什么?我运行服务器,然后调用curl到我的服务器页面,并控制该服务器我的返回(服务器让我一些JSON数据)。 –

回答

0

对于预挂毯5.4有一个SeleniumTestCase,你可以用它来为您的应用程序运行的集成测试: https://tapestry.apache.org/integration-testing.html

注意,在SeleniumTestCase使用硒RC已被弃用,新的​​项目,不应该使用它。

最近的tapestry版本推荐使用Spock + Geb进行集成测试,其中一个例子可以找到here。有一个由Tapestry提交者维护的第三方项目tapestry-geb,可以帮助您为测试设置Geb。

您也可以使用PageTester开始您的应用程序,但据我所知,PageTester本身无法使用自定义HTTP动词,因此您需要使用其他方法发送请求,即使用相同的Spock + Geb 。

请注意,有一个Tapestry页面响应不同的HTTP动词并返回JSON响应并不常见。看起来你试图实现某种REST API,在这种情况下,我建议你看看Tynamo的tapestry-resteasy

借助tapestry-resteasy,您可以将Tapestry服务公开为REST端点。在这种情况下,您可以使用上面提到的PageTester来测试您的端点为普通Tapestry服务。