这可能听起来像一个模糊的问题,但我正在寻找一些特定的指针。
我们的J2EE应用程序构建于Struts2 + Plain Servlets + JSP + iBatis + Oracle
我更喜欢在Scala中编写单元测试,这样我也可以学习侧面的语言
<table>
标记内有特定列。 我正在尝试编写上述测试以及核心业务功能测试,但问题是我试图将遗留代码包装在单元测试中,而且代码当然不是为单元测试而设计的。
答案 0 :(得分:3)
我不打电话给这个单元测试。当您尝试测试几个单元的集成时。另外,为JSP创建单元测试相当困难,因为它只有在容器中时才有许多上下文依赖性。
相反,我建议编写一些针对运行(部署)应用程序执行的自动功能测试。
像Selenium这样的框架在这里可能会有很大的帮助,因为它们可以模拟真实的用户行为并对生成的HTML代码进行断言。
编辑:这里的另一种方法可能是:
但它再次不是单元测试,而是集成测试。
答案 1 :(得分:0)
就像大家都说的那样,你并不是在谈论单元测试。你在谈论功能测试。我会认真思考你的真正目标是什么。推动自动化测试的动力是什么?应用程序是否存在配置问题(即,它很难配置,因此某些部分可以正常工作,而其他部分则不然)。这可能是在selenium中构建针对您的疼痛页面和测试用例的烟雾测试套件的合理性。这也有助于检测回归错误。
至于遗留问题。没有任何应用程序无法帮助如果您在selenium中运行前端测试,那么只要其可解析的HTML编写代码并不重要。
至于您的实际服务器端代码。你只需要滚动Andy Dufresne样式。在修复错误并添加功能代码时考虑到测试驱动开发原则。返工与您的更改相关的代码并添加单元测试。如果你继续削减遗留应用程序的速度,你会感到惊讶。