【问题标题】:DB backend webapp testing in java [tool needed]java中的DB后端webapp测试[需要工具]
【发布时间】:2011-04-12 05:00:47
【问题描述】:

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

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

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

在做了一些研究后,我发现 DBUnit 对数据库后端系统测试很有用,但不幸的是我找不到任何好的资源作为入门者

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

编辑:

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

提前致谢

干杯

同样的

【问题讨论】:

    标签: java testing junit dbunit


    【解决方案1】:

    您的问题并不清楚您是要针对您的数据库层运行集成测试(前端 + 后端)还是单元测试。

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

    Selenium 带有一个Firefox plugin,它基本上会为您生成代码。您可以在浏览器中重放测试或将它们导出为 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

    【讨论】:

      【解决方案2】:

      DBUnit 的官方入门文章here 对我有用。 Re: 数据库逻辑测试,你可能还想签出this

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

      【讨论】:

        【解决方案3】:

        对于您的第一个问题,请查看this StackOverFlow thread...

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

        希望对您有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-22
          • 2011-02-11
          • 1970-01-01
          • 2010-09-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多