从JUnit运行SQL脚本

时间:2008-12-03 10:12:29

标签: sql junit

在我正在进行的JUnit测试用例的设置方法中,我需要它在每个测试用例之前在我的数据库上运行一个sql脚本,然后再回滚。

我尝试过使用tokenizer,它将每个SQL命令添加到批处理中然后执行它们。但我无法工作。 所以我的问题是JUnit中是否有一些标准方法来执行此操作?

2 个答案:

答案 0 :(得分:2)

您可以尝试DbUnit

  

DbUnit是一个针对数据库驱动项目的JUnit扩展(也可用于Ant),除其他外,它将数据库置于测试运行之间的已知状态。这是避免在一个测试用例破坏数据库并导致后续测试失败或加剧损坏时可能发生的无数问题的绝佳方法。

     

DbUnit能够将数据库数据导出到XML数据集或从中导入数据库数据。从版本2.0开始,DbUnit在流模式下使用时也可以处理非常大的数据集。 DbUnit还可以帮助您验证数据库数据是否与预期的值集匹配。

答案 1 :(得分:1)

测试SQL语句不是JUnit的任务。

您应该创建一个Mocker(例如EasyMock)并隔离连接。 因此,模拟器可以模仿sql连接及其结果。使用此模拟对象,您可以检查您的sql连接器类是否调用了正确的语句。

如果你想测试SQL语句,结果等等,你应该使用DBUnit,正如Aaron所说。