我目前正在使用 pgTap 将单元测试添加到相当大量的 PostgreSQL 存储过程中。
一些过程执行显式锁定行的操作。这些锁对应用程序至关重要。
如何编写测试来检查需要锁定的行是否已锁定,以及不应锁定的行是否已锁定?
我目前唯一的“线索”是 pgrowlocks 扩展,它允许事务检查被另一个事务锁定的行。但是,当前事务似乎没有看到它自己的锁,所以我不得不使用一些东西来同步两个事务,除非我完全弄错了,否则使用 pgTap 没有办法做到这一点。
(注意:使用 PostgreSQL 9.1)