0

我想为我的 java web 应用程序创建一个测试套件。它是一个具有 JDBC 连接性的 JSP 应用程序。我的要求如下,

1 - 我应该能够通过我的模型测试我的数据库逻辑(查询等)。

2 - 如果我也可以测试我的 .jsp 页面,那就太好了(如果可能的话)

在做了一些研究之后,我发现 DBUnit 非常适合数据库后端系统测试,但不幸的是我找不到任何好的资源作为入门

你们对我拥有的测试选项有什么看法?如果您也可以发布一些指向资源/示例的链接,那就太好了

编辑:

我遇到了模拟对象(如 JMock ..),想知道我可以用它作为 DBUnit 的替代品吗?

提前致谢

干杯

同龄人

4

3 回答 3

1

DBUnit 的官方入门文章在这里为我工作。回复:数据库逻辑测试,您可能还想检查一下

至于 JSP 测试,我之前曾使用Cactus成功测试过我的 servlet。但是,我不知道它的 JSP 测试工具。

于 2011-04-12T05:10:24.460 回答
1

如果您想针对您的数据库层运行集成测试(前端 + 后端)或单元测试,您的问题并不清楚。

如果您需要一个允许您编写集成测试的工具,您应该明确地查看Selenium。使用 Selenium,您可以通过简单地浏览您的网站(JSP 页面)并断言页面上的内容存在或等于某些值来生成功能测试。

Selenium 附带一个Firefox 插件,它基本上会为您生成代码。您可以在浏览器中重放测试或将它们导出为 Java 代码并将它们作为测试套件的一部分。Selenium 是一种非常宝贵的工具。

使用像 Selenium 这样的工具的缺点是您的应用程序需要部署在某个地方才能运行您的测试套件。如果您计划运行使用 Selenium 生成的自动化测试,这可能是一个限制。

如果您只对测试您的数据库访问代码(DAO,数据访问层)感兴趣,那么 DBUnit 是完美的工具。通常,DBUnit 用于在测试之前初始化数据库表,并且很少用于对数据库内容运行断言。DBUnit 使用基于 XML 的格式来表示将插入数据库的数据。

包含用于预填充数据库的数据的 XML 文件通常由构建脚本(Ant、Maven 等)触发或直接在您的单元测试代码中触发。我已经使用了这两种方法,这实际上取决于您的代码结构和访问数据库的方式(Hibernate、Spring+Hibernate、JDBC ......)。

如果您的数据库不是太大,我建议您在运行测试套件之前填充它。或者,您可以在每次测试之前仅填充您有兴趣测试的表。

这是 Unitils 的链接,这是一个额外的库,可以在 DBUnit 之上使用,以简化数据库测试策略。我认为它可以用作帮助您入门的参考: http ://www.unitils.org/tutorial.html#Database_testing

这是另一个链接(相当古老,2004 年),显示了 DBUnit 的基本机制:

http://onjava.com/pub/a/onjava/2004/01/21/dbunit.html

于 2011-04-12T06:43:15.943 回答
1

对于您的第一个问题,请查看此 StackOverFlow 线程...

第二,我会接受 Chry 对CactusSelenium的建议。

希望有帮助。

于 2011-04-12T06:54:51.113 回答