【问题标题】:Is there any way to apply TDD techniques for dev in PL/SQL有没有办法在 PL/SQL 中为 dev 应用 TDD 技术
【发布时间】:2011-11-18 09:27:29
【问题描述】:

由于我在 PL/SQL 的数据库服务器端有很多程序逻辑,我想知道 TDD 是否适用于 PL/SQL。如果您向我指出一些有样本和详细描述的信息资源,那将是非常上帝的。提前致谢!

UPD:我需要仅在我的机器上存储和运行测试,不影响其他团队成员。这可能吗?

【问题讨论】:

标签: database oracle unit-testing plsql tdd


【解决方案1】:

是的 - 只需像在任何其他编程语言中一样应用正常的 TDD 周期(参见例如wikipedia):

  1. 添加测试
  2. 运行所有测试,看看新测试是否失败
  3. 写一些代码
  4. 运行自动化测试并查看它们是否成功
  5. 重构代码
  6. 重复

你当然想要unit testing framework。不出所料,例如StackOverflow 有类似Unit testing for PL/SQLUnit Testing Framework for Oracle PL/SQL? 的问题。您已经检查过这些 - 不是吗?

独立运行测试是很有可能的。您可能希望拥有一个专用的 Oracle 数据库实例或 100% 受您控制的架构。

我经历过的唯一棘手的部分是测试一个非常广泛使用数据库的代码,或者当数据库架构发生很大变化时。如果数据库很复杂或者测试执行需要大量数据,填充或伪造数据库可能会很棘手且耗时。在这些情况下,我通常会通过删除使运行测试变得繁琐的约束和触发器来伪造数据库。这很好,因为重点是 PL/SQL 代码,而不是数据库结构,并且单元测试不是最终验证步骤。

【讨论】:

  • 如果 PL/SQL 处理 DML,那么禁用触发器以及在较小程度上的约束可能会产生太多问题,以补偿更快的执行时间。但我同意管理测试数据是对数据库应用程序进行单元测试最困难的部分。
  • @APC:确实如此——这在很大程度上取决于 PL/SQL 代码和相关 DML 的性质。但这是必须逐案评估的事情 - 必须找到正确的平衡和单元测试水平。咳咳:How to (unit-)test data intensive PL/SQL application
猜你喜欢
  • 1970-01-01
  • 2011-05-04
  • 2016-04-25
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多