Test::MockDBI v0.50 is wending its way through CPAN, even as I write this. Test::MockDBI uses Test::MockObject::Extends to mock up the whole DBI interface for testing. Rules for DBI behavior are set up, then the standard output of the containing program can be examined for matching patterns.
Mocking up the whole DBI interface is useful for us consultants, as the Test::MockDBI code can be added to an existing program without that program's knowledge, allowing you to test the program's use of DBI without modifying the base code of the program -- or for that matter, hitting an actual database at all (unless you want to).
The rules can be sensitive to what SQL is currently being processed, as well as depending on a numeric DBI testing type. Wildcarding is allowed, so if you have some DBI processing that is done by all programs, you can set up that processing without it interfering with testing your specific program's DBI usage.
Test::MockDBI is an improvement over DBD::Mock or DBI::trace(), as you can modify the mocked-up DBI's behavior to force conditions to occur that might be difficult or impossible to otherwise force to occur.
Test::MockDBI v0.50 is marked as alpha code, because although what I have written and tested is beta or production-quality code, not all of the DBI is mocked-up yet. If anyone has a good idea on how DBI::quote() should work in Test::MockDBI, I would love to hear from you.