【发布时间】:2010-11-15 05:11:25
【问题描述】:
我有 Rails 应用程序,我使用 postgresql 作为数据库。当应用程序数据发生更改时,我使用触发器函数在数据库中进行一些更改。但是我对如何使用测试用例测试触发功能没有一个好主意...
【问题讨论】:
标签: ruby-on-rails function postgresql triggers
我有 Rails 应用程序,我使用 postgresql 作为数据库。当应用程序数据发生更改时,我使用触发器函数在数据库中进行一些更改。但是我对如何使用测试用例测试触发功能没有一个好主意...
【问题讨论】:
标签: ruby-on-rails function postgresql triggers
我也遇到了类似的情况。我最终编写了涉及直接数据库插入/更新/删除语句的单元测试,以及直接选择语句来验证更改。
作为提示,请考虑编写一些测试,一次操作多行,并验证返回的受影响行数是否有效。根据我的经验,后者有在事情复杂时揭示缺点(崩溃、竞争条件等)的诀窍。
【讨论】:
为什么不简单地执行与生产应用程序相同的操作?
例如如果您的触发器在插入和更新时增加了列值,只需为这些事件编写一个测试,并通过检索并检查该值是否正确递增。因此,如果在插入操作之前列值为“3”,之后为“4”,则说明触发器已正确触发。
【讨论】: