私は現在、pgTapを使用して、かなり大量のPostgreSQLストアドプロシージャに単体テストを追加しています。
一部のプロシージャは、行を明示的にロックする操作を実行します。これらのロックは、アプリケーションにとって重要です。
ロックする必要のある行がロックされていることと、ロックされるべきではない行がロックされていないことを確認するテストを作成するにはどうすればよいですか?
私が現時点で持っている唯一の「手がかり」はpgrowlocks拡張機能です。これにより、トランザクションは別のトランザクションによってロックされた行をチェックできます。ただし、現在のトランザクションには独自のロックがないように見えるため、2つのトランザクションを同期するために何かを使用する必要があります。かなり間違えない限り、pgTapを使用してそれを行う方法はありません。
(注:PostgreSQL 9.1を使用)