1

我的任务是调查我们应该如何在即将到来的项目中执行测试。

我目前正试图决定何时我们应该对我们的 SQL 语句进行结构化测试。我得出的结论是,为“get”语句设置测试套件以确保它们返回正确的数据而不是测试插入、删除或更新可能是一个好主意,因为这可以很容易地用如果缺少某些依赖项,将在数据库中选择和外键异常。

现在,我一直在检查DBunit是否习惯于执行这些测试,但我有几个问题:

1.是否可以进行上述测试?还是花时间创建这些测试和插入测试数据不值得?也许让开发人员测试这个 ad-hoc 就足够了?

2.为每个测试确定适当的测试数据似乎很耗时。测试数据应手动插入 DBunit 需要的 flat-xml 文件中(如果您让 DBunit 生成预期的数据,您将依赖于获取该数据的 SQL)。是这样吗?

3.是否有更好、更简单的方法来执行数据库测试来验证 SQL 语句?

该项目将使用 Hibernate、Java 和 MS SQL Server

4

1 回答 1

0

您可以使用 dbunit,也可以以编程方式构建 db 内容(在每个测试中)。重要的部分是让测试框架(例如弹簧测试)在每次测试后进行回滚。一旦设置好环境,就很容易测试在单个事务中完成的 DML(获取、插入、删除)。

如果您想测试 DDL(某些数据库在事务之外执行此操作),那么您必须在每次测试之前手动回滚或从头开始创建数据库(例如在内存数据库中)。通常不需要 DDL 测试,因为 hibernate 会执行验证部分

是的:您应该测试您的查询 - 花一些时间准备环境是值得的

于 2014-01-15T21:24:35.987 回答