1

我公司的软件开发团队使用 TDD 和 BDD 实践进行开发。因此,我们有大量的单元、集成和验收测试来让我们知道我们的代码库是否按预期工作。不用说,如果没有这些测试给我们不断的反馈,我们现在就无法生存。

我们团队的开发 DBA 编写具有复杂逻辑的表视图。他在没有单元测试的情况下开发这些,并且在他进行后续开发时它们总是会中断,从而使软件开发团队感到沮丧。

我的问题是,是否鼓励 DBA 在敏捷环境中工作时使用 TDD 实践?DBA 是否有测试框架允许他们以这种方式工作?我们使用 IBM 的 DB2 数据库;该数据库是否有任何测试框架允许以 TDD 方式开发数据库视图?

4

2 回答 2

1

在过去,我使用了两种方法:

  1. 在应用程序中有一个非常薄的数据访问层并围绕它编写测试。换句话说(假设您的 dba 使用 sprocs),为每个新的 sproc 编写一个访问它的方法,并创建一个适当地练习它的测试(或者更好的是,首先测试)。这很好,因为它很容易与测试运行程序集成。您可以使用事务回滚测试而不会产生副作用。

  2. 另一种选择是使用本机 SQL 测试框架。我已经评估了 tsqlt,它是一个 SQL Server 框架,因此不适合您的情况,但该方法是可靠的,并且可能有适合 DB2 的框架。

于 2013-09-14T22:15:01.517 回答
1

有几个框架可以在不同类型的数据库中测试例程。其中一些遵循 xUnit 规范,这允许在数据库级别进行类似 jUnit 的测试。

对于 DB2,有一个名为 db2unit 的框架:https ://github.com/angoca/db2unit

使用这个框架,您可以像在 jUnit 中那样比较对象(数字、日期、布尔值、字符串等)。

您可以通过捕获错误代码将数据库级别测试的结果包含到全局测试中,这可以包含在持续集成系统中。db2unit 使用 Travis-CI 来测试自己。

于 2014-07-12T13:02:34.680 回答