【问题标题】:Tapestry 5: test response of pageTapestry 5:页面的测试响应
【发布时间】:2017-05-07 12:23:07
【问题描述】:

我有一个页面,那个页面返回StreamResponse(json):

StreamResponse onActivate() { .... }

服务器支持带有该页面参数的 POST/GET/PUT/DELETE 请求。

我想为此请求编写一个测试(junit)并断言结果。

我是怎么做到的?

【问题讨论】:

  • 您到底想测试什么? Tapestry 应用程序如何处理不同的 HTTP 动词?或者只是实现onActivate()
  • 是的,我想确定我的服务器工作正常,它对某些请求的回答正确。那么,我现在做了什么?我正在运行服务器,然后调用 curl 到我的一些服务器页面并控制我返回的服务器(服务器给我一些 json 数据)。

标签: junit tapestry


【解决方案1】:

对于 Tapestry 5.4 之前的版本,您可以使用 SeleniumTestCase 为您的应用运行集成测试: https://tapestry.apache.org/integration-testing.html

请注意,SeleniumTestCase 中使用的 Selenium RC 已被弃用,新项目不应使用它。

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

您也可以使用PageTester 启动您的应用程序,但据我所知PageTester 本身不能使用自定义 HTTP 动词,因此您需要使用其他东西来发送请求,即使用相同的Spock + Geb。

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

使用 Tapestry-resteasy,您可以将 Tapestry 服务公开为 REST 端点。在这种情况下,您可以使用上述PageTester 将您的端点作为常规 Tapestry 服务进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多