【发布时间】:2012-01-14 08:38:16
【问题描述】:
我目前正在使用 pgTap 向大量 PostgreSQL 存储过程添加单元测试。
某些过程执行显式锁定行的操作。这些锁对应用程序至关重要。
我如何编写测试来检查需要锁定的行已经被锁定,以及不应该被锁定的行不是?
我目前唯一的“线索”是 pgrowlocks 扩展,它允许一个事务检查被另一个事务锁定的行。但是,当前事务似乎没有看到自己的锁,所以我必须使用一些东西来同步两个事务,除非我完全弄错了,否则使用 pgTap 是没有办法的。
(注意:使用 PostgreSQL 9.1)
【问题讨论】:
-
对我来说
pg_locks确实列出了“我自己的”交易/锁。 -
这里也是这样,但是并没有指出哪些元组被锁定,这是我要测试的。
标签: unit-testing postgresql transactions rowlocking