1

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

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

4

2 回答 2

2

你可以试试DbUnit

DbUnit 是针对数据库驱动项目的 JUnit 扩展(也可与 Ant 一起使用),其中包括在测试运行之间将您的数据库置于已知状态。这是避免当一个测试用例损坏数据库并导致后续测试失败或加剧损坏时可能发生的无数问题的极好方法。

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

于 2008-12-03T10:14:53.337 回答
1

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

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

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

于 2008-12-04T07:49:09.747 回答