http://www.perlmonks.org?node_id=1000335


in reply to How to do automated tests of a database centric CPAN module

There are two distinct things that you need to test:   first, the ability to connect to a database of the expected type; second, the ability to interact with the database and to demonstrate that the correct set of changes are applied to it.   The latter situation, I think, is likely to be “particular to the (usually...) known target type of database” that I personally would be less than willing to substitute another one.   Normally, I set up a testing-only database that is used only for automated tests, and the first step of that script is to run an external command that first drops and then reloads the database with known initial content.   Sometimes that script is re-run several times.   (In one commercial situation, we set up the first test to run an md5sum against the source-data script itself to guard against innocent but undocumented out-of-process changes to its “known” content.)