in reply to Re^2: SQL configurations in automated testing
in thread SQL configurations in automated testing

The point is that DBIC already does all that testing for you with regards to how a given DBMS will work. All you care about is making sure that you make the right calls to DBIC. To test that, you can go ahead and use DBD::Mock to test your SQL. Alternately, you could work with the DBIC folks - they've almost got a testing framework for use with DBIC applications all done.

The point is that you use a tool so that you don't have to maintain a given subsystem. If you don't have to maintain it, you don't have to test it. So, you can test a single RDBMS (mysql or pg, for example) and be reasonably certain that it will all work in others.

My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
  • Comment on Re^3: SQL configurations in automated testing

Replies are listed 'Best First'.
Re^4: SQL configurations in automated testing
by skazat (Chaplain) on Nov 21, 2007 at 22:38 UTC

    I see.

    That's quite interesting.

    For this project at least, it doesn't seem to be quite a good fit.

    But, it still looks like there's no one quite to run the test suite on a server you're installing on. I'm thinking of weird dragons and discrepancies between the environment of the server I'm developing on and the (thousands) of different servers that may well have it installed on. That still doesn't seem to be a problem DBIx::Class solves (or advertises, I don't think)


    -justin simoni
    skazat me

      you're quite right in that even the same operation can work quite differently on the same db engine but on different architecture. the db engine vendors do try to make things as portable but they're never 100%.
      on a side note in regards to different db engines, it's interesting to see some not so minor SQL standard implementations by the different vendors. some of this is documented in Joe Celko's book "SQL for Smarties"
      in terms of further developing your test suite...maybe it could be made more black box like by having a config. As for checking whether a db engine exists on a machine or such, you could run basic sanity check before running tests proper. The sanity check typically written in "eval" style defensive coding to connect to db etc.
      or maybe i'm missing the point entirely?
      the hardest line to type correctly is: stty erase ^H