HISTORY

This is the third version (second major re-write) of
this code.  All three versions used Test::MockObject to
mock-up the DBI, but they differed in their modularity
and how the developer changed the mock DBI's behavior.

The first version was embedded in an application, using
DFA::Simple to provide a state machine for processing
the SQL.  This was not modular or reusable.  (I was coming
up to speed on a client's DBI application and needed a
way to quickly test whether the DBI interface portion was
correct without modifying the production database.)

The second version was a .pl file implementing a singleton
object that put all its code and data into main::
(because I misunderstood how Test::MockObject worked),
used DFA::Simple again, and had to be require'd.  Usable,
but not nearly as simple as it seemed like it should be.

In this third version:

  - Test::MockDBI is a CPAN-standard Perl module now, with
    code and data all in the Test::MockObject namespace.
    Once again, Test::MockDBI is a singleton class, as I
    cannot see a way that multiple Test::MockDBI objects
    would be useful.

  - DFA::Simple is no longer used, as using the second
    version of Test::MockDBI to test multiple programs
    revealed that any state machine(s) used should be part
    of the developer-supplied code for processing specific
    pieces of SQL, rather than built into the main code.

  - Testing types ("--dbitest[=TYPE]") were made more
    explicit.  An explicit wildcard type of 0 (zero) was
    added (easily since zero cannot be used as a regular
    type).  Strangely enough, this wildcard type almost
    eliminated use of state machines in my testing...

  - The separate test programs are autogenerated so they use
    the correct #! startup line.

  - The test suite covers almost all of the statements, and
    most of the branches and conditionals.

  - Devel::Cover can be used to generate test coverage
    statistics.

  - The developed-supplied code to invoke Test::MockDBI and
    modify the behavior of the DBI is now about half the
    size of what was required by the second version of
    Test::MockDBI.
