问候,我们有一个包含大量bean,JSP等的项目。迫切需要在我们的环境中执行自动化测试(我们使用Maven)。现在,我们可以轻松地为数据库项目层编写测试,用于我们实现的各种安全实用程序。但JSP页面仍未经过测试。
我搜索了服务器端测试的实用程序,Cactus似乎是最好的选择。但是,根据他们的更改列表,他们的最新版本是1.8,它是在两年多前发布的!
所以问题是 - 仙人掌发生了什么,它还在发展还是什么?雅加达仙人掌最近的替代品(如果有的话)是什么?
答案 0 :(得分:4)
我在最近的项目中使用了Spring,JUnit和HttpClient的组合并取得了一些成功。
Apache HttpClient提供了一个强大而灵活的API,用于构建和发送http请求到您的应用程序。它无法复制Web浏览器,例如通过运行客户端脚本,但是如果生成的http响应(标题,URI,正文)中有足够的内容,则可以使用此信息遍历应用程序中的页面并验证行为。您可以发布表单,关注重定向,处理cookie并将输入提供给您的应用程序。
JUnit(junit.org)驱动测试,使用HttpClient调用一系列页面,可以与应用程序一起部署,使用ant / maven独立运行,或者在IDE中单独运行。
Spring(springsource.org)当然是可选的,因为您可能没有将它用于您的项目。我发现存根/模拟应用程序的某些部分很有用,这样我就可以通过替换DAO来返回特定的数据值,从而将特定区域(如前端控制器)与业务逻辑隔离开来。它提供了一个优秀的Test Context Framework和专门的TestRunners,可以很好地连接到JUnit(或者你喜欢的TestNG)这样的测试框架。
答案 1 :(得分:2)
Arquillian怎么样?我还没有使用它,它甚至还没有稳定的版本,但至少它正在积极开发中。
答案 2 :(得分:2)
Cactus在ejb2时代是一个很好的服务器端测试框架,但它不再受支持了。
您可以结合使用Mock测试(细粒度)和In-Container测试(粗粒度)策略来完全测试您的应用程序。
模拟测试框架:Mockito,Jmockit,EasyMock等。
集成测试框架(Java EE):Arquillian,Embeddable API等。
我更喜欢 Mockito 和 Arquillian 进行服务器端测试。
答案 3 :(得分:0)
你可能想尝试硒。与jBehave的关系是我发现的一个很好的组合。对这两个项目的支持越多,它们就越不会失效(如仙人掌)。