在了解TDD究竟是什么之前,我一直在编写测试驱动的代码。调用函数和类而不实现它有助于我以更快,更有效的方式理解和构建我的应用程序。所以我非常习惯编写代码的过程 - >编译它 - >看到它失败 - >通过构建它的实现来修复它。
这个过程对网络来说有点难度。特别是JSP。当我编译我的Java类时,一切都很好,我可以看到编译错误。但是,看到JSP中的错误需要我打开浏览器并调用该特定的JSP。
有没有办法避免这个过程,并在没有实际加载浏览器的情况下向我显示JSP编译错误?
答案 0 :(得分:3)
不确定。您可以预编译JSP。甚至还有蚂蚁任务。请参阅链接:http://ant.apache.org/manual/Tasks/jspc.html
但我认为这只是第一步。这将允许您查看编译错误。我认为你想要更多,即单元测试。我相信像雅加达仙人掌(或其他人)这样的工具可以帮到你。
最近BTW发现了以下resource列举了大量的java测试工具。答案 1 :(得分:2)
我通常不直接测试JSP。在JSP中保留尽可能少的逻辑通常是一个好主意,如果你的JSP只包含一些<c:out>
标签,那么测试并不是真的太多了。但是,如果你确实有相当数量的逻辑,那么我要做的就是将这个逻辑提取到一个自定义标签中,你可以很容易地测试它。
答案 2 :(得分:1)
编译是最简单的部分,我认为AlexR的答案处理得很好。
测试和测试驱动JSP很困难,因为测试它确实需要部署到Web容器或模拟(模拟)它,并通过浏览器或模仿浏览器的东西运行。
Cactus可以帮助进行容器内测试。 Selenium也可以。
或者你可以嘲笑环境。如果您使用的是Spring,则可以为此提供一些很好的支持。
但是,处理测试和测试驱动JSP的难度的最好方法是完全停止使用JSP,或者至少通过避免使用scriptlet来最小化JSP代码中的逻辑。
由于JSP只是伪装的servlet,因此总是可以在没有JSP的情况下编写Web应用程序,并且可以使用Wicket和Tapestry等框架或Velocity之类的模板引擎。在没有JSP的情况下进行Java Web应用程序开发非常容易。