我想为我的java web应用程序创建一个测试套件。它是一个具有JDBC连接的JSP应用程序。我的要求如下,
1 - 我应该能够通过我的模型测试我的数据库逻辑(查询等)。
2 - 如果我可以测试我的.jsp页面(如果可能的话),那就很棒了
经过一些研究后我发现DBUnit对数据库后端系统测试有好处,但不幸的是我找不到任何好的资源作为启动器
你们对我所测试的选项有什么看法,如果你能发布一些资源/例子的链接,那将会很棒
编辑:
我遇到了模拟对象(比如JMock ..),我想知道我可以用它作为DBUnit的替代品吗?
提前致谢
欢呼声
sameera
答案 0 :(得分:1)
答案 1 :(得分: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
以下是anoter链接(相当陈旧,2004年),展示了DBUnit的基本机制:
答案 2 :(得分:1)